Windows深度学习环境搭建实战:PyTorch GPU版与CUDA 10.2的完美组合

当我在李沐老师的《动手学深度学习》视频中第一次看到GPU加速的神奇效果时,立刻被深深吸引了。作为一个刚入门深度学习的爱好者,我迫不及待想在自己的Windows电脑上搭建同样的环境。然而,从Anaconda环境创建到最终验证CUDA可用性,这个过程远比想象中复杂。本文将详细记录我如何一步步解决各种问题,最终成功搭建PyTorch GPU环境的全过程。

1. 环境准备:从零开始的深度学习工作站

1.1 Anaconda环境创建

深度学习项目最怕环境冲突,因此我决定为《动手学深度学习》创建一个独立的环境。打开Anaconda Prompt,我输入了以下命令:

conda create -n d2l_zh_gpu python=3.8 pip

这里有几个关键点需要注意:

  • -n d2l_zh_gpu:为环境命名,我沿用了课程推荐名称,但你可以自定义
  • python=3.8:明确指定Python版本,避免后续兼容性问题
  • pip:确保环境中包含pip工具,方便后续安装其他包

创建完成后,激活环境:

conda activate d2l_zh_gpu

成功激活后,命令行提示符前的(base)会变成你的环境名称(d2l_zh_gpu),这是确认环境切换成功的最直观标志。

1.2 CUDA版本确认

在安装PyTorch GPU版本前,必须确认系统CUDA版本。通过以下命令检查:

nvcc --version

我的输出显示CUDA版本为10.2,这决定了后续需要下载对应CUDA 10.2的PyTorch版本。如果你的CUDA版本不同,需要选择匹配的PyTorch版本。

注意:nvidia-smi显示的CUDA版本是驱动支持的最高版本,而nvcc --version显示的是实际安装的CUDA工具包版本,两者可能不同但必须兼容。

2. PyTorch GPU版本安装:避开那些坑

2.1 寻找正确的wheel文件

PyTorch官方提供了所有历史版本的wheel文件,访问以下URL:

https://download.pytorch.org/whl/torch_stable.html

面对密密麻麻的文件列表,我花了些时间才理解命名规则:

文件名部分含义我的选择
cuXXXCUDA版本cu102
cpXXPython版本cp38
win_amd64系统架构win_amd64

最终我选择了这个文件:

cu102/torch-1.10.1+cu102-cp38-cp38-win_amd64.whl

2.2 下载与安装策略

最初我尝试通过清华镜像源直接安装:

pip install torch==1.10.1+cu102 -i https://pypi.tuna.tsinghua.edu.cn/simple

但下载速度极慢且经常中断。于是改为手动下载wheel文件后本地安装:

  1. 从PyTorch官网直接下载wheel文件
  2. 保存到本地目录(如Downloads)
  3. 使用pip安装本地文件:
pip install C:\Users\YourName\Downloads\torch-1.10.1+cu102-cp38-cp38-win_amd64.whl

这种方法不仅速度更快,还能避免网络问题导致的中断。

3. 环境验证:确保GPU加速真正生效

3.1 基础功能测试

安装完成后,我迫不及待地进行了测试:

import torch
print(torch.__version__)  # 应显示1.10.1+cu102
print(torch.cuda.is_available())  # 期待True

当看到True的输出时,那种成就感难以言表!但别高兴太早,我还进行了更深入的测试:

# 检查CUDA设备数量
print(torch.cuda.device_count())

# 获取当前设备名称
print(torch.cuda.get_device_name(0))

# 创建一个张量并移动到GPU
x = torch.randn(3, 3).cuda()
print(x.device)  # 应显示cuda:0

3.2 常见问题排查

如果torch.cuda.is_available()返回False,可能是以下原因:

  1. 安装了CPU版本:运行conda list查看torch的build信息,如果是cpu而非cu102,说明安装错误
  2. CUDA驱动不匹配:确保nvcc --version显示的版本与安装的PyTorch版本兼容
  3. 环境变量问题:检查CUDA相关路径是否已正确添加到系统环境变量中

4. 效率优化与后续配置

4.1 加速包安装

为了获得完整的深度学习开发环境,还需要安装几个关键包:

pip install torchvision==0.11.2+cu102 torchaudio==0.10.1+cu102 -f https://download.pytorch.org/whl/torch_stable.html

这些版本号与PyTorch 1.10.1+cu102保持兼容。安装时同样可以使用本地下载的wheel文件来加速。

4.2 Jupyter Notebook集成

为了方便实验,我将环境添加到Jupyter Notebook:

conda install ipykernel
python -m ipykernel install --user --name=d2l_zh_gpu

现在,我可以在Jupyter中选择d2l_zh_gpu内核,直接在浏览器中运行GPU加速的代码了。

4.3 性能基准测试

为了量化GPU带来的提升,我运行了一个简单的基准测试:

import torch
import time

device = 'cuda' if torch.cuda.is_available() else 'cpu'
size = 10000

# CPU测试
start = time.time()
a = torch.randn(size, size)
b = torch.randn(size, size)
c = a @ b
print(f'CPU time: {time.time()-start:.2f}s')

# GPU测试
start = time.time()
a = a.to(device)
b = b.to(device)
c = a @ b
print(f'GPU time: {time.time()-start:.2f}s')

在我的机器上,GPU版本比CPU快了近20倍,这充分证明了环境配置的价值。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐