Bootstrap

TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?

b5cbb7c1e1bf32f6e98bda608ca92afa.gif

正文共:1220 字 20 图,预估阅读时间:2 分钟

有了上次的经验Windows部署TensorFlow后识别GPU失败,原因是啥?,我们这次操作就顺利多了,在保留之前环境的基础上,我们新建一台虚拟机来操作。

配置稍微堆高一点,避免影响性能,配置48核CPU、128 GB运行内存(全部锁定)、200 GB系统盘,镜像使用Windows 10的19041版本。

d9188e703598bab8cb1e1bc04f9ca13e.png

系统安装完成之后,GPU驱动没有自动安装,需要手工安装。

a21b69c4bc61716b427b3174d4546210.png

相比于之前,版本又更新了,下载安装一下。安装完成之后,和上次一样HPE服务器通过显卡直通安装Tesla M4,这算亮机成功了吗?,显示适配器驱动识别正常,NVIDIA控制面板只有系统信息可以展示,不能配置显示配置。

de394af6a05790c39df4eb0617f8e994.png

任务管理器中没有GPU选项。

dc3c3f4f2ba7577303dad21f004303fd.png

接下来安装Anaconda,安装过程中勾选Clear the package cache upon completion(完成后清除安装包缓存),本次安装前磁盘的已用空间为40.5 GB,安装完成后已用空间为45.6 GB,大约占用5.1 GB。

安装完成之后,打开Anaconda Navigator,进入“Environment”查看环境配置。点击页面下方的“Create”来创建一个新环境,指定名称为tensorflow,Python版本选择为3.11.5,点击“Create”完成创建。

8f8162aabb5fe9f5869b5dda4df31fe4.png

新环境创建完成之后,点击新环境后面的启动按钮,选择“Open Terminal”打开命令行终端。

afe7d0891af6bfed662af7c13ea4d177.png

然后输入以下命令来激活testtensorflow环境:

activate tensorflow

4b3c29a78fe1255078b76482fa8ee7b5.png

接下来又到了安装TensorFlow的时候了,默认情况下,pip使用的是官方的Python Package Index (PyPI) 服务器(https://pypi.org/),但因为区域问题,我们在安装Python包时遇到了速度慢且网络不稳定的问题,此时我们考虑切换到国内的镜像源试一下。

常用的国内镜像源有,清华大学https://pypi.tuna.tsinghua.edu.cn/simple/,中国科学技术大学(USTC)https://pypi.mirrors.ustc.edu.cn/simple/,阿里云http://mirrors.aliyun.com/pypi/simple/。

切换pip源有两种常见方法:临时更换和永久修改。对于临时更换,只需在命令行中使用-i参数指定一个新的源地址,比如我们本次临时使用中国科学技术大学的镜像源(清华大学的有报错),命令如下:

pip install tensorflow -i https://pypi.mirrors.ustc.edu.cn/simple/

80a31af2c0a181e2100702e217ce6b1a.png

果然这个速度就快很多了,最快能到将近200 Mbps。

当然,如果你感觉每次安装库时都输入一遍国内镜像源地址麻烦的话,也可以试试永久修改。首先打开Windows文件资源管理器,在地址栏中输入“%appdata%”,然后回车,一般会进入到C:\Users\tesla\AppData\Roaming目录;然后新建一个“pip”文件夹,并在pip文件夹下,新建一个名为“pip.ini”的文件,并向文件中写入以下内容:

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/
trusted-host = pypi.mirrors.ustc.edu.cn

881d371848e801e022770ded1efa7079.png

最后保存并关闭pip.ini文件即可。

然后我们可以简单进行验证。

880b30f28d4e78dfa92da6cf9521f1ec.png

如果看到查找的路径与我们配置的源路径一直就说明修改成功了。

进入Python视图,输入以下命令检测TensorFlow版本。

import tensorflow as tf
print("TensorFlow version:", tf.__version__)

3e4e12ec6c7d1b83129d03509276e741.png

输入以下命令检测GPU状态。

tf.test.is_gpu_available()

d055aa8ffe3168599ffe58f1722ab124.png

哦吼,还是False,难道是没有装CUDA和cuDNN的原因?那就下载安装一个,CUDA文件大小3.1 GB,又不小。下载链接如下:

https://developer.download.nvidia.com/compute/cuda/12.3.1/local_installers/cuda_12.3.1_546.12_windows.exe

4b62651486e97747a3edff50ebad7389.png

安装过程和显卡驱动安装过程基本一致,需要注意一个Visual Studio的确认页面,Visual Studio的CUDA工具包是用来方便我们开发CUDA程序的,如果不需要开发CUDA程序,则不需要安装Visual Studio的CUDA工具包,勾选下面的同意选项即可。

344db9ad99824499c9189174596fb97c.png

之后按照提示完成安装即可。

06ac016d009d16b4467e0790fd5e6cb5.png

再安装一个cuDNN,记得选择和CUDA版本配套的版本,下载链接如下:

https://developer.download.nvidia.com/compute/cudnn/secure/8.9.6/local_installers/12.x/cudnn-windows-x86_64-8.9.6.50_cuda12-archive.zip

8c60052df0d74d8068dcf890caa69012.png

解压压缩包,会得到3个文件夹。

3862cdad93cdbaaef70eff151d36c3cd.png

然后,将bin中的所有文件复制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\bin中,将include中的所有文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\include中,将\lib\x64中的所有文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\lib\x64中。

接下来,在计算机系统属性的“高级”页签中,点击进入“环境变量”配置,检查系统变量的Path中是否存在指向C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\bin的变量;如果不存在,请创建一个。

3b4862fcdc28e70cc22c23fd60b01928.png

操作完成后,我们可以在CMD命令提示符或PowerShell运行以下命令检查cuDNN是否安装成功,正常应该可以看到NVCC(NVIDIA Cuda Compiler)的版本信息。

nvcc --version

c12a1d0b320f951dc6834119dc906109.png

好了,现在CUDN和cuDNN都装好了,但还是不成功,重启试一下。

1287bccd154bf4597169a76ee7541a43.png

完蛋,崩溃了,怎么就不行呢?

410c8f60a69de07989cc361df01cce3c.gif

长按二维码
关注我们吧

b5492622c9976d219e7a94126228c423.jpeg

b1cb513e5c3fc00a67d9a697d8c3d934.png

Windows部署TensorFlow后识别GPU失败,原因是啥?

ESXi的超线程状态为“已禁用”,是谁动了我的服务器?

如何操作VMware ESXi虚拟机的克隆?

如何操作VMware ESXi虚拟机的迁移?

VMWare ESXi中,不同的虚拟网卡性能竟然能相差三倍!

VMWare ESXi 7.0的磁盘空间莫名少了120 GB?看这里!

79.55 Gbps!已经初步测得VMWare ESXi 6.7的vSwitch转发性能

添加E1000网卡进行测试,只有VMXNET3性能的四分之一

macOS unlocker 4.0.5 for VMware ESXi 7.0

CentOS 7搭建NFS服务器

手把手教你在天翼云部署一台FortiGate云主机

PVE8.0-2安装使用快速指导

借PVE8.0的Debian 12系统配置一下NFS服务器

不想用了PVE了怎么办?那就迁移到VMware呗!

在线文档频繁故障不稳定,其实可以自己搭一个Etherpad在线文档

地址重叠时,用户如何通过NAT访问对端IP网络?

手撸一个自动搭建openVPN服务器的SHELL脚本

HCL中虚拟设备的转发性能怎么样?今天我们来测一下

如何在最新版的HCL 5.10.0中导入NFV镜像?

;