这里基于读者已经有使用Python的相关经验,就不介绍Python的安装过程。
win10+mx350+Python3.7.4+CUDA11.4.0+cudnn11.4
torch 1.11.0+cu113
torchaudio 0.11.0
torchvision 0.12.0+cu113
一般来说在命令行界面输入python就可以了解python版本。
也可以使用如下代码查询python版本。
import sys
print(sys.version)
以下是torch与Python版本的对应关系对应关系依据
安装CUDA的前提条件是无论是笔记本或者台式机都要有独立的GPU,且由于笔者电脑是NVIDIA显卡,所以本文只关于NVIDIA显卡的安装教程。
到CUDA Toolkit下载对应版本。如我在上一步的查询结果是NVIDIA CUDA 11.4.94,所以我在这里下载11.4。
显卡驱动具有向下兼容性,在这里可以选择11.4.94以下的版本
依次点击
参考以下三张图来源
取消勾选vs
将这三条路径记下,可能会用的到
之后一直下一步即可。
查看环境变量,若未自动添加环境变量,需要手动添加
#根据上一步保存的路径添加
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\extras\CUPTI\lib64
验证环境变量是否配置成功
win+r输入cmd进入命令行界面输入nvcc -V
出现版本信息
到英伟达官网寻找对应的版本 https://developer.nvidia.com/rdp/cudnn-archive以我为例
我在上一步显示的是NVIDIA CUDA 11.4.94
所以在官网我下载结尾为11.x的版本,在这里建议大家尽量不要最新的版本,以防出现问题找不到对应的解决方案。下载后进行解压。
解压后如图所示,将这三个文件夹复制粘贴到CUDA的文件夹目录下,替换原有文件。
验证cuDNN
同样win+r输入cmd进入命令行界面
切换到安装目录的demo_site
如果存放在C盘外的其它盘需要先d:
回车进入该盘符再使用cd 存放目录
进入
#如我的存放路径
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4\extras\demo_suite
进入该文件夹后输入deviceQuery.exe
出现PASS
输入bandwidthTest.exe
出现PASS
到此cnDNN和CUDA安装成功
到Pytorch官网https://pytorch.org/get-started/previous-versions/查找对应版本的torch torchvision torchaudio
在这你可能会找不到对应版本,请搜索你的CUDA版本可不可以匹配另一个版本的torch
如我的CUDA是11.4但在这里并没有与之对应的版本,但是我经过搜索发现可以使用11.3匹配的版本。
torch==1.11.0+cu113
,请务必不要删去不要删去+cu113
。pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
import torch
print(torch.__version__) #查看torch版本
print(torch.cuda.is_available()) # cuda是否可用,可用返回TRUE,不可用返回false
以下是两个简单的神经网络用以测试
import torch
import torch.nn as nn
class SimpleNet(nn.Module):
def __init__(self):
super(SimpleNet, self).__init__()
self.fc1 = nn.Linear(10000, 10000)
def forward(self, x):
x = self.fc1(x)
return x
net = SimpleNet().to(torch.device('cuda'))
第二个代码参考第二个代码来源
import torch
import time
gpu = torch.device('cuda')
# 如果用cpu测试那么注释掉上面的代码, 用下面的
# gpu = torch.device('cpu')
beginTime = time.time()
a = torch.rand(2048, 2048)
b = torch.rand(2048, 2048)
c = torch.rand(2048, 2048)
x = a.to(gpu)
y = b.to(gpu)
z = c.to(gpu)
initTime = time.time()
print("ok")
i = 0
while i < 10000:
z = (z + x + y)
i += 1
endTime = time.time()
print(z)
print("运行结束, 初始化使用了 {} 秒, 循环用了 {} 秒".format(initTime - beginTime, endTime - beginTime))
以上为本人配置pytorch环境的全过程,以此作为记录,有不足还请大家指出。