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

2023-12-21 13:52

本文主要是介绍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镜像?

这篇关于TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520244

相关文章

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给

Java程序运行时出现乱码问题的排查与解决方法

《Java程序运行时出现乱码问题的排查与解决方法》本文主要介绍了Java程序运行时出现乱码问题的排查与解决方法,包括检查Java源文件编码、检查编译时的编码设置、检查运行时的编码设置、检查命令提示符的... 目录一、检查 Java 源文件编码二、检查编译时的编码设置三、检查运行时的编码设置四、检查命令提示符