
装了这么多年PyTorch我越来越觉得“装环境”这事才是真正劝退新手的第一个门槛。尤其是GPU版本的PyTorch明明照着教程一步步来结果不是版本对不上就是驱动不识别再要么就是torch.cuda.is_available()返回一个扎眼的False。今天我把自己反复踩坑后整理出来的完整流程写下来从驱动、CUDA、cuDNN到PyTorch安装验证一条龙讲清楚覆盖Ubuntu、Windows和WSL2三种常见场景希望能帮你少走点弯路。1. 安装前的硬件与驱动识别1.1 为什么必须先搞清楚“CUDA”和“显卡驱动”的关系很多朋友一上来就搜“CUDA安装教程”然后照着网上的命令猛敲一通最后发现PyTorch还是用不了CPU。这里面的核心误区在于CUDA不是单独装一次就能一劳永逸的它是一个和驱动、PyTorch版本三方咬合的系统。打个比方显卡驱动是“操作系统和GPU之间的翻译官”而CUDA Toolkit是“GPU计算需要的工具链”PyTorch则是“使用这个工具链的应用程序”。翻译官版本太老工具链再新也跑不起来工具链和应用程序对不上程序就会直接报错。所以安装前先别急着动手先花两分钟理清三件事你的GPU型号、你的操作系统、你的PyTorch版本。1.2 双显卡笔记本Intel核显 NVIDIA独显的识别方法搜索热词里有人提到“显卡有两个Intel UHD Graphics和NVIDIA GeForce RTX 4060 Laptop GPU”这是非常典型的笔记本双显卡架构。Intel核显负责日常桌面显示和轻度负载NVIDIA独显负责游戏、渲染和CUDA计算。PyTorch要做GPU计算只会认NVIDIA独显所以安装前一定要先确认系统能看到这块卡。在Windows下打开任务管理器-性能能看到GPU0和GPU1GPU1通常就是NVIDIA独显。也可以打开“设备管理器-显示适配器”查看具体型号。在Linux下用命令lspci | grep -i nvidia或者在终端里执行nvidia-smi如果显示驱动版本和显卡型号说明驱动层面已经识别到这块卡了。有个非常容易忽略的点如果nvidia-smi能显示显卡信息但是torch.cuda.is_available()仍然是False多半不是硬件问题而是PyTorch装成了CPU版本或者CUDA运行时版本和驱动不匹配。这一点后面会详细说。1.3 通过nvidia-smi判断驱动支持的最高CUDA版本nvidia-smi这个命令能告诉你很多信息但新手最容易误解的是右上角的“CUDA Version”。注意这里的CUDA Version并不是你系统里已经安装了CUDA Toolkit的版本而是当前驱动最高能支持到什么版本的CUDA。比如驱动版本是551.86右上角显示CUDA Version 12.4说明你的驱动最多支持CUDA 12.4的运行时。如果这时候你强行装了CUDA 11.8的Toolkit只要没超过12.4其实一般也能跑起来因为驱动是向下兼容的。所以一个朴素但有效的原则是驱动版本尽可能新然后根据PyTorch官方要求的CUDA版本去选ToolkitToolkit版本不要超过驱动右上角显示的CUDA Version。这个原则能帮你避免90%以上的环境兼容性问题。2. 显卡驱动安装与验证Ubuntu / Windows / WSL22.1 Ubuntu 20.04/22.04 下驱动安装的两条路Ubuntu下装NVIDIA驱动我试过很多种方式最稳的其实是以下两条路按顺序尝试即可。第一条路是直接使用系统自带的软件仓库安装命令如下sudo apt update sudo apt install nvidia-driver-535 sudo reboot安装完后执行nvidia-smi能看到显卡信息和驱动版本就说明成功了。这种方式的优点是简单、不容易出幺蛾子缺点是需要知道自己的显卡对驱动版本的大致要求不过现在主流型号用535或545系列基本都覆盖了。第二条路是去NVIDIA官网手动下载驱动安装包。这种方式适合需要特定版本驱动、或者系统仓库里没有合适版本的情况。下载后是这样的流程chmod x NVIDIA-Linux-x86_64-*.run sudo ./NVIDIA-Linux-x86_64-*.run运行安装包时有几个交互选项遇到“Would you like to register the kernel module sources with DKMS?”选择Yes遇到“Install NVIDIAs 32-bit compatibility libraries?”看需要选择通常选Yes也不会错。安装完成后依然用nvidia-smi验证。我自己在实际操作中发现Ubuntu下很多人装驱动失败是因为没关掉系统的nouveau开源驱动。这个驱动和NVIDIA官方驱动冲突会在安装时直接报错。需要在安装前把它禁用掉方法是在/etc/modprobe.d/blacklist-nouveau.conf文件里写入blacklist nouveau options nouveau modeset0然后执行sudo update-initramfs -u重启后再装官方驱动。这一步是很多“Ubuntu CUDA安装指令安装不了”问题的根源。2.2 Windows下驱动安装别去设备管理器“更新驱动程序”Windows下安装NVIDIA驱动的正确姿势是去NVIDIA官网下载对应型号的驱动或者用GeForce Experience自动安装。我不太推荐在设备管理器里点“更新驱动程序”因为Windows自动搜索往往找不到最新版本而且有时会装上Windows自带的通用驱动导致CUDA功能不完整。安装完成后同样在命令行里输入nvidia-smi验证。Windows下这个命令一般位于C:\Windows\System32\nvidia-smi.exe如果提示找不到命令可能需要在系统环境变量里加上C:\Program Files\NVIDIA Corporation\NVSMI。另外要提醒一下笔记本用户如果发现驱动装完以后风扇狂转或者GPU占用异常先看看是不是同时启用了核显和独显可以在NVIDIA控制面板的“管理3D设置”里把首选图形处理器改成“自动选择”让系统按负载分配。2.3 WSL2里到底要不要装驱动和CUDA搜索热词里“WSL2安装CUDA”出现频率很高这里我把话说明白WSL2里不需要、也不应该安装NVIDIA显卡驱动但需要安装CUDA Toolkit。具体原理是这样的WSL2通过Windows侧的驱动直接访问GPU所以你只需要在Windows侧把NVIDIA驱动装好WSL2里运行nvidia-smi时能看到和Windows一样的显卡信息。但WSL2是个轻量虚拟机里面没有完整的显卡驱动栈却需要CUDA相关的用户态库所以你需要单独安装CUDA Toolkit。WSL2里装CUDA Toolkit最简单的做法是执行wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-toolkit-12-4注意安装完成后需要配置环境变量把CUDA的bin和lib64目录加入PATH和LD_LIBRARY_PATH。具体在~/.bashrc里添加export PATH/usr/local/cuda-12.4/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH这就是为什么很多人在WSL2里装完PyTorch仍然报CUDA错误不是PyTorch的问题而是环境变量没配上运行时找不到libcudart.so。3. 用Anaconda管理PyTorch环境前后端版本匹配关键3.1 为什么极力推荐用Anaconda安装PyTorch有些朋友习惯直接用pip install torch觉得省事。但在实际项目里我强烈建议先用Anaconda创建一个独立环境再在环境里装PyTorch。理由很简单PyTorch、CUDA Toolkit、cuDNN以及后续要装的TensorFlow、JAX之类的深度学习框架对依赖库的版本要求千奇百怪。今天装的A项目需要PyTorch 1.13明天另一个项目可能就需要PyTorch 2.1如果没有环境隔离你会陷入“装完新项目旧项目跑不了”的噩梦。Anaconda可以从官网下载安装脚本安装完以后创建环境并激活conda create -n pytorch python3.10 -y conda activate pytorchPython版本建议选择3.9或3.10目前大多数深度学习库对这两个版本兼容性最好。3.11、3.12虽然新但偶尔会遇到个别库没有预编译包的情况新手没必要冒这个险。3.2 如何从PyTorch官网获取正确的安装命令打开PyTorch官网的Get Started页面选择你的操作系统、包管理方式通常是Conda或Pip、CUDA版本它会自动生成对应的安装命令。这一步是全网教程里最简单也最关键的部分但很多人就是在这里翻车的。举个具体的例子如果要安装CUDA 12.1版本的PyTorch且用Conda安装命令是conda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidia如果选择Pip安装命令是pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121这里需要解释一个很多人没搞明白的问题为什么Conda安装PyTorch时还要指定pytorch-cuda这个包因为从PyTorch 2.0开始默认安装的PyTorch不再自动附带CUDA运行时它把运行时拆成了独立的依赖包。如果不加pytorch-cuda12.1你可能会装上CPU版本的PyTorch然后torch.cuda.is_available()永远返回False。3.3 pip install torch和conda install pytorch的区别这两种方式我都试过谈一下实际感受。Conda安装的好处是依赖解析更彻底它会自动帮你安装匹配的CUDA运行时库不太容易出现“import torch后提示加载torch_python.dll失败”这类问题。缺点是Conda官方源有时速度慢而且某些PyTorch小版本更新要等几天才会同步到Conda源。Pip安装的好处是速度快、版本更新非常及时而且PyTorch官方提供的--index-url直接指向编译好的wheel包只要指定了正确的CUDA版本基本不会装错。缺点是你需要自己保证CUDA运行时和驱动版本匹配有些时候还需要手动安装cuDNN。从稳定性角度来说如果你在Windows上我个人更推荐用Conda如果在Linux服务器上且服务器已经装好了系统级的CUDA Toolkit用Pip安装也可以但要注意先确认系统CUDA版本和PyTorch需要的CUDA版本是否匹配。4. 实际操作GPUCUDA版PyTorch完整安装流程4.1 安装前必须验证的三条命令在真正开始安装之前我建议先依次执行下面三条命令确认环境状态。别嫌这一步麻烦它能帮你把问题定位到驱动层还是PyTorch层。第一条是确认GPU是否被系统识别nvidia-smi如果这个命令都执行失败说明驱动还没装好直接往下走是浪费时间。第二条是确认驱动支持的最高CUDA版本是多少还是看nvidia-smi右上角的CUDA Version。第三条是确认Python环境和包管理工具是否正常python --version conda --version这三条命令的执行结果就是你整个安装过程的“地基”。我曾经遇到过一台远程服务器nvidia-smi显示驱动正常但Python环境被队友搞得一团乱conda activate之后python仍然指向系统自带的Python结果PyTorch怎么装都失败。后来发现是PATH环境变量优先级的问题这种问题在团队协作的机器上尤其常见。4.2 完整安装步骤分解Windows与Linux通用这里我以安装PyTorch 2.3.0 CUDA 12.1为例给出完整步骤。这套流程在Windows和Ubuntu上基本通用WSL2也适用。第一步创建并激活conda环境conda create -n pytorch python3.10 -y conda activate pytorch第二步安装PyTorch。这里强调一下优先使用官网生成的原生命令不要自己脑补版本号conda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -c nvidia第三步等待安装完成后验证安装结果。在Python交互环境里执行import torch print(torch.__version__) print(torch.version.cuda) print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))如果输出的是2.3.0cu121 12.1 True NVIDIA GeForce RTX 4060 Laptop GPU就说明安装成功了。注意第一行输出是2.3.0cu121而不是2.3.0如果有cu121后缀说明这确实是含CUDA支持的GPU版本如果只有2.3.0那你大概率装成了CPU版本回头看看是不是安装命令里漏了pytorch-cuda12.1。4.3 安装过程中常见卡点conda源慢、下载中断、版本冲突Conda安装慢是国内用户最常遇到的问题。如果你执行conda install时速度像蜗牛可以在用户目录下创建.condarc文件添加国内镜像源channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud nvidia: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud配置完以后conda install里涉及pytorch和nvidia渠道的包都会走清华镜像速度提升明显。但要注意镜像同步可能有延迟如果遇到“PackagesNotFoundError”说明镜像源还没同步到那个版本的包可以临时把.condarc里的custom_channels注释掉恢复默认官方源安装。下载中断是另一个高频问题。Conda或Pip下载到一半网络断了重新执行安装命令时经常会在校验阶段报错。我的处理方式是先把安装命令里的包下载到本地缓存然后再离线安装。Pip的话可以这样pip download torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 -d /tmp/pytorch_pkgs pip install /tmp/pytorch_pkgs/*.whlConda则可以在环境变量里设置conda config --set remote_read_timeout_secs 600把超时时间从默认值调大一些减少长文件下载中途断开的概率。5. 性能验证与CPU/GPU速度对比测试5.1 用一段矩阵运算快速验证GPU是否真正参与计算很多人验证到torch.cuda.is_available()返回True就心满意足了但我建议再做一个简单的性能对比测试确保显卡真的是在干活而不是名义上被识别。可以用一段矩阵乘法的代码来测试import torch import time # CPU测试 cpu_tensor torch.rand(1024, 1024, 1024) device torch.device(cuda) # GPU测试 gpu_tensor torch.rand(1024, 1024, 1024, devicedevice) def run_cpu(): start time.time() for _ in range(10): torch.matmul(cpu_tensor, cpu_tensor) return time.time() - start def run_gpu(): start time.time() for _ in range(10): torch.matmul(gpu_tensor, gpu_tensor) torch.cuda.synchronize() # 等待GPU计算完成 return time.time() - start print(fCPU 耗时: {run_cpu():.2f}秒) print(fGPU 耗时: {run_gpu():.2f}秒)注意GPU测试里那行torch.cuda.synchronize()这非常重要。如果没有它GPU操作是异步的time.time()可能已经返回了但GPU还在后台算测出来的时间会虚低。我在RTX 4060 Laptop GPU上实测1024x1024矩阵乘法CPU耗时大约2秒左右GPU耗时大约0.05秒快了几十倍。如果你的GPU测试时间和CPU差不多甚至更慢先检查一下是不是数据量太小导致GPU没有发挥出并行优势或者检查一下是不是用torch.rand生成CPU张量后忘记调用.to(cuda)。5.2 显存占用与驱动日志的双重验证除了测时间我还会看显存占用。在Python里执行print(torch.cuda.memory_allocated(0)) print(torch.cuda.memory_reserved(0))或者在另一个终端窗口跑nvidia-smi看进程列表里有没有一个叫python的进程占用显存。如果看到显存占用涨上去同时GPU-Util那一列的利用率在跳动就说明程序确实在GPU上计算。nvidia-smi还可以加-l 1参数让它在终端里每秒刷新一次观察GPU利用率的实时变化。我习惯在做长训练任务时开一个这样的监控窗口能及时发现显存溢出、GPU利用率过低、显存没释放一类的问题。5.3 PyTorch为什么默认使用GPU张量设备的指定方法很多初学者写下torch.tensor([1, 2, 3])后就以为它在GPU上运行其实不是的。PyTorch里的张量默认创建在CPU上你需要主动把它搬到GPU上。常见的搬移方式是tensor torch.rand(3, 3) tensor_gpu tensor.to(cuda)或者直接在创建时指定设备tensor_gpu torch.rand(3, 3, devicecuda)同理模型也要搬到GPU上model MyModel() model model.to(cuda)这里有个新手经常犯的错模型搬到GPU以后输入数据忘记搬过去运行时会直接报“Expected all tensors to be on the same device”有时候则表现为“Expected device cpu but found device cuda”。我的习惯是在训练循环开头的to(cuda)操作里把所有相关张量一次性处理掉避免后面到处找漏网之鱼。6. 常见错误与问题排查实录6.1torch.cuda.is_available()返回False的六大原因这里我整理了一个高频问题速查表按检查优先级排列原因判断方法解决办法驱动未安装nvidia-smi命令找不到安装对应系统的NVIDIA驱动驱动太老nvidia-smi右上角CUDA版本低于PyTorch需求升级驱动PyTorch装成CPU版torch.__version__不带cu后缀重新安装GPU版PyTorchCUDA运行时缺失Linux下报libcudart.so找不到安装CUDA Toolkit并配置环境变量环境变量未生效echo $PATH里没有cuda路径修改~/.bashrc并重新激活环境双显卡笔记本无独显模式Windows下GPU设置里使用了核显更新驱动程序切换全局使用NVIDIA处理器这张表里第二行特别关键。很多朋友的显卡是RTX 3060甚至在用云服务器上的老显卡而PyTorch官方最新版本要求的CUDA版本是12.1或更高如果驱动只支持到CUDA 11.8torch.cuda.is_available()就会返回False。这时不用慌可以回退到PyTorch 1.13或2.0对应的CUDA 11.7/11.8版本没必要非得追求最新版本。6.2 Ubuntu下“CUDA安装指令安装不了”的常见报错搜索热词里出现“Ubuntu CUDA安装指令安装不了”这个情况我用Ubuntu时也遇到过。最典型的表现是执行sudo apt-get install cuda后提示“E: Unable to locate package cuda”。这个报错一般是因为没有把NVIDIA官方的CUDA仓库添加到apt源列表里。正确做法是先执行wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update然后再执行sudo apt-get install cuda。注意ubuntu2204要换成你自己的Ubuntu版本比如20.04就是ubuntu2004。另一个常见报错是安装过程中提示“Failed to verify the signature of CUDA repo”一般是因为系统时间不对导致GPG签名验证失败。用sudo ntpdate ntp.ubuntu.com同步一下时间通常就能解决。6.3 WSL2里GPU加速生效但Windows侧出现“GPU崩溃或D3D设备已移除”搜索热词里有句话让我印象很深“GPU发生崩溃或D3D设备已移除”。这个错误我在Windows下的图形渲染、视频剪辑场景里遇到过偶尔在WSL2跑深度学习时也会出现。这里需要区分两种情况。如果是Windows原生程序报这个错多数是显卡驱动不稳定、显存不足、或者GPU频率过高导致驱动重置。可以尝试更新驱动、降低图形负载、或者清理显存占用。如果是在WSL2里跑PyTorch时出现则要检查Windows侧的GPU驱动是不是太老。WSL2的GPU共享机制依赖Windows侧驱动的稳定性和完整性有些老驱动版本在长时间高负载计算下会导致GPU设备从WSL2侧“消失”。解决方法是升级到最新的Game Ready或Studio驱动同时在WSL2里执行sudo docker info看不看得到GPU或者直接重启WSL2wsl --shutdown然后再重新进入WSL2通常就能恢复正常。6.4 多版本CUDA共存的管理策略实际开发中你不可能永远只用一个CUDA版本。有些老项目依赖CUDA 11.3新项目需要CUDA 12.1这时候如果反复卸载重装不仅浪费时间而且容易把系统搞坏。NVIDIA官方其实是支持多版本CUDA共存的只需要把不同版本安装到/usr/local/cuda-11.3、/usr/local/cuda-12.1这样的独立目录然后通过修改环境变量来切换。我的习惯是给不同项目准备不同的conda环境在activate某个环境时同时更新PATH和LD_LIBRARY_PATH指向对应版本。具体可以在~/.bashrc里写几个切换函数比如function use_cuda() { export PATH/usr/local/cuda-$1/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda-$1/lib64:$LD_LIBRARY_PATH }这样在终端里执行use_cuda 12.1即可切换到CUDA 12.1。配合独立的conda环境基本能做到不同项目互不干扰。7. GPU计算底层概念补充CTA与Warp说明7.1 Cooperative Thread ArrayCTA和Warp是什么搜索热词里有个“Cooperative Thread Array在GPU计算中是个什么概念和Warp是什么关系”这个问题问得很专业。简单来说Warp是GPU硬件层面一次调度执行的基本单位CTA则是程序层面组织线程的一种逻辑概念。NVIDIA的GPU架构里GPU由多个流多处理器SM组成每个SM内部又分成若干个子核每个子核一次会同时执行32个线程这32个线程被称为一个Warp。这是硬件天然决定的程序员无法修改Warp的大小。而CTA是你在写CUDA程序或者使用现代深度学习框架的底层自定义算子时主动把一组线程组织成一个协作单元这组线程可以共享一块共享内存并且可以通过屏障同步机制协同工作。一个CTA可以由多个Warp组成具体大小由程序员在启动内核时通过blockDim和gridDim指定。7.2 CTA、Warp和PyTorch安装有什么关系可能有人会觉得这些概念和安装PyTorch没直接关系其实关系很大。GPU版PyTorch的底层就是一个一个CUDA内核KernelPyTorch调用这些内核时框架内部会决定怎么组织CTA、怎么分配Warp。如果你在安装时选了不匹配的CUDA版本或者驱动版本对底层计算单元支持不全就可能在运行时遇到“CUDA error: illegal instruction”或者“no kernel image is available for execution on the device”这类报错。比如RTX 4060 Laptop GPU是Ada Lovelace架构计算能力Compute Capability是8.9。某些老版本的CUDA Toolkit或者PyTorch编译时的目标架构里如果没包含这个计算能力就会在运行时找不到合适的kernel从而报“no kernel image”错误。解决办法是安装不低于对应架构要求的CUDA版本通常在PyTorch官方支持范围内的CUDA 12.x版本都能覆盖新一代显卡。7.3 为自定义算子选择合适CUDA版本的实操建议如果你将来要写自定义CUDA算子比如做模型加速、量化推理你还需要用nvcc编译.cu文件。这时一定要保证nvcc的版本和当前PyTorch编译时使用的CUDA版本一致。怎么检查PyTorch编译用的CUDA版本在Python里执行print(torch.version.cuda)然后用nvcc --version查看本机CUDA编译器的版本。如果两者不一致编译出的算子扩展可能会出现“undefined symbol: __cudaRegisterFatBinary”类似的错误。我的习惯是让conda环境和系统CUDA版本尽量对齐或者干脆直接用torch.utils.cpp_extension提供的CUDA_HOME环境变量指向正确的版本。8. 进阶场景扩展离线安装与服务器部署8.1 离线服务器如何安装GPU版PyTorch很多人以为离线安装PyTorch很麻烦其实只要搞清楚依赖关系比在线安装还稳。先在一台能联网的同系统机器上通过pip下载好所有需要的安装包pip download torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 -d /tmp/pytorch_offline再把整个/tmp/pytorch_offline目录复制到目标服务器执行pip install --no-index --find-links /tmp/pytorch_offline torch torchvision torchaudio如果用Conda也可以用conda pack把整个环境打成压缩包拷贝到离线机器上直接解压使用。不过需要注意conda环境迁移到另一台机器时如果对方没有同样版本的显卡驱动可能会出现运行时错误。8.2 在Kubernetes集群里申请GPU资源时的驱动与CUDA要求搜索热词里有“k8s与GPU安装教程”和“GPU配额不够”这类关键词服务器端的GPU环境管理确实是个大话题。在K8s集群里跑GPU任务节点上必须先装好NVIDIA驱动和nvidia-docker2然后在Pod的YAML里通过resources.limits.nvidia.com/gpu声明申请GPU数量。有一个常见误区很多人以为集群里所有节点的GPU数量加起来就是可用的GPU配额其实还要看每个节点是否有足够的驱动版本和CUDA运行时支持你的镜像。如果Pod调度到了驱动版本过老的节点PyTorch可能会启动失败。我的建议是在镜像里固定PyTorch和CUDA版本同时检查各节点nvidia-smi的CUDA支持情况尽量保证集群内驱动版本一致性。8.3 国产GPU与云GPU的简易替代方案搜索热词里提到“昇腾系列有哪些GPU”、“7900XTX PyTorch WSL”、“GPU租用”这些关键词。这里面有个背景需要说明PyTorch的GPU加速主要基于NVIDIA CUDA生态AMD显卡和国产加速卡往往需要额外的适配工具或特定分支框架。如果你手上的显卡恰好是AMD的RX 7900 XTX在WSL2里跑PyTorch也不是完全不行但需要安装ROCm版本的PyTorch命令是pip install torch --index-url https://download.pytorch.org/whl/rocm5.6不过我个人对新手不太推荐这条路ROCm的环境兼容性问题比CUDA多得多遇到问题也更难检索到解决方案。云计算平台的GPU租用则简单很多像AutoDL、恒源云这些平台都提供了预装好CUDA和PyTorch的镜像你只需要选择带“PyTorch”标签的镜像创建实例后直接SSH进去用就行。这种方式适合需要大显存模型训练但没有本机硬件条件的朋友。9. 自己动手后的几点实在体会装GPU版PyTorch这件事最大的坑从来不是某个命令记不住而是搞不清驱动、CUDA、PyTorch三者之间的匹配关系。我见过太多人卡在torch.cuda.is_available()返回False这一步然后反复重装系统其实冷静下来用nvidia-smi看两分钟就能定位问题。我的建议是每一步验证都做扎实装完驱动先看nvidia-smi装完PyTorch先看torch.__version__是否带cu后缀再跑一个真实的矩阵运算测试。这三步走完你的环境基本就是健康的。如果后续要深入做模型训练有条件的话可以把conda环境、CUDA版本、PyTorch版本这三者的对应关系固定下来写成一个README放在项目目录里。别小看这个习惯半年后你自己回来看这个项目会感谢当年多写了这几行字的自己。