在windows上使用conda配置pytorch-GPU环境
在windows上使用conda配置pytorch-GPU环境
在windows上配置cuda环境和pytorch一直是一个非常麻烦的事情,这里给出一个简单的方法:使用conda配置cuda版本:
假设你的一个项目需要 PyTorch 并且必须使用 CUDA 11.8,你可以这样做:
-
打开 Anaconda Prompt。
-
创建一个新环境:Bash
conda create -n my-project-cuda118 python=3.9 -y -
激活环境:Bash
conda activate my-project-cuda118 -
在该环境中安装指定 CUDA 版本的 PyTorch:Bash
# 这个命令会告诉 conda 去下载一个依赖于 CUDA 11.8 库的 PyTorch 版本 conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
Conda 会在 my-project-cuda118 环境内部署一套迷你的 CUDA 11.8 运行时库。当你在这个环境中工作时,Python 程序会优先使用这些库,完全忽略你系统上安装的 CUDA Toolkit (无论是12.8还是11.8)。
这样做了后就不需要再安装Cuda Toolkit了
其他的pytorch版本和cuda版本可以在这里下载:Previous PyTorch Versions 找到对应的版本使用conda安装就行。

辅助理解:
搞清楚驱动和工具包的概念:
- NVIDIA 驱动程序 (Driver) :它是系统级的,用于让操作系统和你的 GPU 硬件通信。你只需要一个驱动程序,并且应该保持最新。你为 CUDA 12.8 安装的驱动程序完全能够向后兼容 CUDA 11.8 的应用程序。因此,你无需也绝对不应该降级你的显卡驱动!
- CUDA 工具包 (Toolkit) :这是你进行开发所需的库、编译器(
nvcc)等。你可以安装多个版本的工具包,它们会安装在不同的文件夹里,互不干扰。
你使用的这个命令:conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
它做了一件非常智能和方便的事情:
- 下载预编译的 PyTorch:它会从 PyTorch 和 NVIDIA 的 Conda 频道下载一个已经被编译好的、适配 CUDA 11.8 的 PyTorch 版本。
- 下载并部署运行时库:最关键的是,它会同时下载运行这个 PyTorch 版本所必需的 CUDA 运行时库 (Runtime Libraries) 。这些库包括
cuDNN (用于深度神经网络加速)、cuBLAS (用于线性代数计算) 以及其他的核心 CUDA 动态链接库(在Windows上是.dll 文件)。 - 环境内部署:Conda 会把这些库全部安装到你的 Conda 环境文件夹内部(例如
C:\Users\YourUser\miniconda3\envs\my-project-cuda118\Lib\site-packages\torch\lib)。 - 路径隔离:当你激活
my-project-cuda118 这个环境时,Conda 会临时修改当前终端的PATH,让程序优先在你环境的内部文件夹里寻找这些库。
结论就是:你的 Conda 环境已经变成了一个“自给自足”的工具箱。当 PyTorch 需要调用 GPU 时,它会在自己的环境里找到所有需要的 CUDA 运行时库,完全不需要、也不会去理会你系统全局安装的 CUDA Toolkit 是什么版本(无论是 12.8 还是根本没装)。
那么,什么情况下才需要安装完整的 CUDA Toolkit?
完整的 CUDA Toolkit 包含的东西远比“运行时库”要多。它最核心的一个组件是 NVCC (NVIDIA CUDA Compiler) ,也就是 CUDA 的编译器。
你需要安装完整 CUDA Toolkit 的场景主要面向开发者和研究人员:
- 编译你自己的 CUDA 代码:如果你在用 C++ 编写自己的 CUDA 程序(
.cu 文件),你需要nvcc 编译器来将它们编译成可执行文件或库。 - 从源码安装需要编译 CUDA 的 Python 包:有些高级的或前沿的 Python 库可能没有提供预编译好的 Conda 或 Pip 包。当你尝试
pip install some-package-from-source 时,它的安装脚本可能会在你的系统里寻找nvcc 来实时编译其 CUDA 内核。如果找不到,安装就会失败。 - 进行深度性能分析:完整的 Toolkit 附带了像 Nsight Systems/Compute 这样的高级工具,用于详细分析和调试 CUDA程序的性能。
测试gpu是否能用
在你的虚拟环境中运行以下代码:
import torch
print(f"PyTorch 版本 (Version): {torch.__version__}")
# 检查 CUDA 是否可用
is_available = torch.cuda.is_available()
print(f"CUDA 是否可用 (Is CUDA available?): {is_available}")
# 如果可用,打印更多详细信息
if is_available:
device_count = torch.cuda.device_count()
current_device = torch.cuda.current_device()
device_name = torch.cuda.get_device_name(0)
print(f"可用的 GPU 数量 (CUDA device count): {device_count}")
print(f"当前 GPU 索引 (Current CUDA device index): {current_device}")
print(f"当前 GPU 名称 (Device name): {device_name}")
else:
print("未能检测到可用的 GPU。请检查您的驱动、CUDA 版本和 PyTorch 安装。")
显示True表示环境配置正常


浙公网安备 33010602011771号