从零到一:GTX 960M笔记本搭建PyTorch-GPU开发环境全记录
1. 硬件兼容性检查:你的GTX 960M还能战吗?
很多朋友拿到老旧笔记本的第一反应是"这玩意儿还能跑深度学习?"。我当初用GTX 960M时也这么想,但实测下来发现完全够用。先别急着安装,咱们得做好三件事:
首先打开设备管理器,找到"显示适配器"展开。如果你看到"NVIDIA GeForce GTX 960M"就成功了一半。我遇到过驱动异常的情况,这时候需要右键选择"更新驱动程序",让系统自动检测最新驱动。不过要注意,最新驱动不一定最适合我们,后面会讲到版本匹配的玄机。
更专业的方法是打开NVIDIA控制面板(桌面右键菜单就有),点击左下角的"系统信息"。在"组件"选项卡里,你会看到"NVCUDA.DLL"后面跟着的CUDA版本号。我的机器显示是8.0.0,这意味着最高可以安装CUDA 9.x版本。有个冷知识:NVIDIA驱动是向下兼容的,所以新版驱动可以支持旧版CUDA,但反过来不行。
显卡算力也是个关键指标。GTX 960M属于Maxwell架构,计算能力是5.0。这个数值决定了它能跑哪些深度学习操作。我整理了个实用对照表:
| 显卡型号 | 架构 | 计算能力 | 推荐CUDA版本 |
|---|---|---|---|
| GTX 960M | Maxwell | 5.0 | 9.0 |
| GTX 1060 | Pascal | 6.1 | 10.0 |
| RTX 2060 | Turing | 7.5 | 11.0 |
最后别忘了检查显存。在任务管理器性能标签页能看到显存大小,GTX 960M一般是4GB。虽然比不上新卡,但跑MNIST分类或者简单CNN模型完全够用。我试过在这样配置下训练ResNet-18,batch size设32照样跑得动。
2. CUDA与cuDNN的版本华尔兹
版本匹配是个技术活,我在这上面栽过跟头。CUDA 9.0+cuDNN 7.1是经过实测最稳定的组合,但安装过程有讲究。
先从官网下载CUDA 9.0 Toolkit。注意要选local版本(大约2GB),因为网络安装版经常抽风。下载时记得勾选"Driver components",这样会自动安装匹配的显卡驱动。安装时建议选自定义模式,把Visual Studio Integration的勾去掉——这个组件最容易出问题。
我遇到个典型错误:安装进度到90%突然回滚。这时候别慌,按这个步骤来:
- 打开服务管理器(win+R输入services.msc)
- 停掉所有NVIDIA开头的服务
- 删除C:\Program Files\NVIDIA Corporation下的所有文件
- 重新运行安装程序
cuDNN的安装更讲究。下载cuDNN 7.1需要注册NVIDIA开发者账号(免费),解压后会得到三个文件夹:bin、include、lib。这些文件需要手动复制到CUDA安装目录,具体路径是:
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
这里有个隐藏坑点:复制文件时一定要选"替换",但Windows可能提示权限不足。我的解决办法是先用管理员身份打开命令提示符,执行:
takeown /f "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\*" /r /d y icacls "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\*" /grant administrators:F /t3. PyTorch的离线安装妙招
官方conda安装命令经常卡住,我推荐离线安装法。先创建虚拟环境:
conda create -n pytorch_gpu python=3.7.3 conda activate pytorch_gpu关键来了:去清华镜像站下载这两个文件:
- pytorch-1.1.0-py3.7_cuda90_cudnn7_1.tar.bz2
- torchvision-0.3.0-py37_cu90_1.tar.bz2
下载完成后,在文件所在目录打开命令行,执行:
conda install --offline pytorch-1.1.0-py3.7_cuda90_cudnn7_1.tar.bz2 conda install --offline torchvision-0.3.0-py37_cu90_1.tar.bz2但这样还没完,需要补装依赖项。执行这个魔改版命令(注意去掉-c pytorch):
conda install pytorch torchvision cudatoolkit=9.0验证安装是否成功有个小技巧:先启动python交互环境,然后依次执行:
import torch print(torch.__version__) # 应该输出1.1.0 print(torch.cuda.is_available()) # 必须返回True print(torch.zeros(1).cuda()) # 应该显示tensor([0.], device='cuda:0')4. PyCharm环境配置的隐藏技巧
在PyCharm里配置虚拟环境时,很多人找不到conda环境路径。其实默认位置在: C:\Users\你的用户名.conda\envs\pytorch_gpu
有个更聪明的方法:在PyCharm的Terminal里输入:
conda env list复制显示出来的路径即可。
我推荐设置两个实用功能:
- 在Settings -> Tools -> Terminal里,把Shell path改成cmd.exe /K conda activate pytorch_gpu
- 在Run/Debug Configurations里,添加Environment variables:
- Name: CUDA_VISIBLE_DEVICES
- Value: 0
这样每次打开终端都会自动激活环境,而且可以明确指定使用GPU。
最后测试时,建议运行这个简单CNN代码:
import torch import torch.nn as nn class TestNet(nn.Module): def __init__(self): super().__init__() self.conv = nn.Conv2d(3, 16, kernel_size=3) def forward(self, x): return self.conv(x) net = TestNet().cuda() fake_data = torch.randn(1, 3, 32, 32).cuda() output = net(fake_data) print(output.shape) # 应该输出torch.Size([1, 16, 30, 30])如果看到GPU内存占用上升,说明环境完全配置成功了。这套配置虽然用的都是旧版本,但在GTX 960M上实测训练效率比CPU快8-10倍。
