成了!Tesla M4+Windows 10+Anaconda+CUDA 11.8+cuDNN+Python 3.11

038128f887a891ca501c92617946b4db.gif

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

经过前面两次尝试MX250笔记本安装Pytorch、CUDA和cuDNN复制成功!GTX1050Ti换版本安装Pytorch、CUDA和cuDNN,终于在个人PC上尝到了一点点甜头,可以正常识别到MX250和GTX 1050 Ti(Max-Q)这两款显卡的CUDA核心了。

也正如前面所说,做PC的测试是为了给GPU铺路,而且GTX 1050 Ti的性能和Tesla M4相比,仍有10%的差距,今天就来把这剩下的10%补上。

虚拟机规格为24核CPU,型号为Xeon E5-2678V3,运行内存64 GB,操作系统为Windows 10专业版(1090)。

0f1d8da914bdf7a5dc8fe4aed933b469.png

通过PyTorch的版本,我们选择计算平台为稍微低一些的CUDA 11.8,以能够和cuDNN版本相匹配。所以系统环境配置为Windows系统 + Conda(Anaconda) + Python 3.11 + CUDA 11.8,示意如下:

f00328b22aac002fc236ca520413513c.png

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

然后我们去NVIDIA官网下载驱动程序。

00183d29823587e6d886edc7d561e701.png

好尴尬,没有11.8、12.1和12.3这几个版本,那就先选择Any试一下。

9848b84527eedda2a29dc847e7da0004.png

得到的版本还是551.61,跟移动端的版本号是一样的。

安装完驱动之后,在NVIDIA控制面板查看GPU信息,可以看到有1024个CUDA核心.显存规格为4 GB。

f955aedf85ed500dacb4a82f0c65eebb.png

对应的CUDA版本为12.4.89,跟普通显卡的版本是一样的。

45bf69260b1faf7e33106618c3a5eea5.png

对应的,CUDA 11.8的下载链接如下:

https://developer.download.nvidia.cn/compute/cuda/11.8.0/local_installers/cuda_11.8.0_522.06_windows.exe

cuDNN 9.0.0的下载链接如下:

https://developer.download.nvidia.cn/compute/cudnn/9.0.0/local_installers/cudnn_9.0.0_windows.exe

按照提示完成CUDA的安装。

f124a2bb25cf967de54430878968b0fa.png

按照提示完成cuDNN的安装,这次没有报错。

cc9ecd4d2f5621dd9d8d7a2f84cdf122.png

安装完成之后,使用nvcc -V命令检查CUDA是否安装成功。

1f5e6810c050ffd4894c4b33ccdda3cf.png

接下来,先安装Anaconda,下载链接如下:

https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Windows-x86_64.exe

再安装PyTorch。

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

2cf96288928d9761a42f3373a00418bd.png

安装完成之后,在Python命令行使用以下命令检查CUDA和cuDNN是否安装成功,返回值为True则说明安装成功。捎带检查一下CUDA设备(GPU)的数量,>1说明设备识别成功。

import torch
print(torch.cuda.is_available())
from torch.backends import cudnn
print(cudnn. is_available( ))
print(torch.cuda.device_count())

bc33f8fec12c493236c550b564fa774d.png

除此之外,还可以获取GPU设备的名称、显存大小等等,还可以运行简单的GPU运算。

if torch.cuda.is_available():
print("GPU可用")
device_name = torch.cuda.get_device_name(0)
print("设备名称:", device_name)
# 获取GPU属性(显存大小)
device_properties = torch.cuda.get_device_properties(0)
print("总显存大小:", device_properties.total_memory)
# 运行一个简单的GPU计算任务来测试性能
x = torch.randn(1024, 1024).cuda()
y = torch.randn(1024, 1024).cuda()
z = x + y
print("GPU计算完成",z)
else:
print("GPU不可用")

9efeb5b8616b8b3cf82e1161a296bd54.png

可以看到,成功识别到设备型号为Tesla M4,显存为4 GB,对应的CUDA设备序号为0。

再运行一个简单的脚本来对比一下24核CPU和单张GPU的运算速度。

import torch
import time
# 定义一个较大的张量用于计算
size = (10240, 10240)
input_cpu = torch.randn(size)
input_gpu = input_cpu.to(torch.device('cuda'))
# 在CPU上执行矩阵乘法(耗时操作)
start_time_cpu = time.time()
output_cpu = torch.mm(input_cpu, input_cpu.t())
duration_cpu = time.time() - start_time_cpu
# 在GPU上执行同样的操作
start_time_gpu = time.time()
output_gpu = torch.mm(input_gpu, input_gpu.t().to(torch.device('cuda')))
duration_gpu = time.time() - start_time_gpu
# 输出结果和运行时间
print(f"CPU Matrix Multiplication Time: {duration_cpu:.6f} seconds")
print(f"GPU Matrix Multiplication Time: {duration_gpu:.6f} seconds")

a9dc911e055fb8f32ca30014166c02ab.png

不得不说,数据中心设备的性能就是比个人PC强,i7-8750H的运算时间为5.395秒,E5-2678V3的运算时间为1.5秒,GPU的运算时间为0.015秒。不过CPU全部投入计算还是很不错的,我甚至听到了服务器的一声轰鸣。

14b028df29a4150b683dcafd8ec0d947.png

如果将张量再增大10倍呢?

8e5c87f647c8610fcd940e42c62c0c80.png

太大了,41,943,040,000字节,也就是40 GB,CPU可支配内存空间不足,看来深度学习用到的CPU、内存、GPU规格都很高。

99a9311e16441be995fd054fe938e075.png

切换成(51200, 51200)试一下,这次CPU分配了20 GB的内存,没问题了,计算耗时180秒。

6f48a2848b5df59e1f3016de921116cd.png

但是GPU的可用空间不足了,计算这些数据需要9.77 GB,超出3.68 GB的总规格了。

72c38190e6ecf62a22f06db3463852d6.png

再往下降一点,改成(16000, 16000)试一下。

e5a4455d928d705510cc5c0e1116f9eb.png

CPU运算耗时5.452780秒,GPU运算耗时0.046782秒,应该是得益于CPU数量比较多,差距仅为115倍,看一下24核CPU满负载运行的场面。

bbae6966585659b99853d8022dd4beac.png

但是当前的测试方法也存在一定问题,那就是运算之后不能及时释放资源,导致GPU的显存一直不够用。经过了解,只要将运算过程中用到的张量释放掉就行了。

# 输出结果和运行时间后,释放GPU显存
input_gpu = None
output_gpu = None

具体的显存使用情况可以通过命令nvidia-smi来查看。

5c908cfef1e79e03930cc2517837d1b7.png

但是,为什么CUDA版本是12.4呢?和PyTorch中展示的不一样。

9f05cfb21114a646605215bdb412771e.png

应该问题不大,听说,如果PyTorch不能找到匹配的CUDA或cuDNN库,它可能无法调用GPU加速。

f6e7f23b013f44f84c92c741ed2f9af0.gif

长按二维码
关注我们吧

3c3ae1078ff0acdc54ceba3a352cc75f.jpeg

cd410f269ddaaac7595edf435c0b8154.png

MX250笔记本安装Pytorch、CUDA和cuDNN

复制成功!GTX1050Ti换版本安装Pytorch、CUDA和cuDNN

CentOS 7.9安装Tesla M4驱动、CUDA和cuDNN

Ubuntu 23.10通过APT安装Open vSwitch

VPP使用DPDK纳管主机网卡

VPP纳管网卡后还有哪些要做的工作?

VPP配置指南:NAT“三板斧”

VPP配置指南:基于IKEv2的IPsec VPN

CentOS 7配置Bonding网卡绑定

轻轻松松达到1.8 Gbps,果然HCL还是搭配高档电脑更好使

Windows Server调整策略实现999999个远程用户用时登录

IPv6从入门到精通

SRv6典型配置

使用Python脚本实现SSH登录设备

配置VMware实现从服务器到虚拟机的一键启动脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值