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

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原