在 Windows 10 Conda 环境中安装 PyTorch 并配置 NVIDIA GeForce RTX 3060 GPU 的记录草稿

现在win10系统的情况

bash 复制代码
Microsoft Windows [版本 10.0.19045.5198]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Again>nvidia-smi
Tue Dec 10 20:05:44 2024
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 528.92       Driver Version: 528.92       CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ... WDDM  | 00000000:01:00.0  On |                  N/A |
| N/A   47C    P8    16W /  40W |   1114MiB /  6144MiB |     23%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      2916    C+G   ...me\Application\chrome.exe    N/A      |
|    0   N/A  N/A      9304    C+G   ...me\Application\chrome.exe    N/A      |
|    0   N/A  N/A     11272    C+G   C:\Windows\explorer.exe         N/A      |
|    0   N/A  N/A     12116    C+G   ...5n1h2txyewy\SearchApp.exe    N/A      |
|    0   N/A  N/A     12696    C+G   ...e\PhoneExperienceHost.exe    N/A      |
|    0   N/A  N/A     13388    C+G   ...qxf38zg5c\Skype\Skype.exe    N/A      |
|    0   N/A  N/A     17608    C+G   ...wekyb3d8bbwe\Video.UI.exe    N/A      |
|    0   N/A  N/A     19036    C+G   ....0\flutter\pc_flutter.exe    N/A      |
|    0   N/A  N/A     21052    C+G   ...2txyewy\TextInputHost.exe    N/A      |
|    0   N/A  N/A     21904    C+G   ...y\ShellExperienceHost.exe    N/A      |
|    0   N/A  N/A     22824    C+G   ...perience\NVIDIA Share.exe    N/A      |
|    0   N/A  N/A     25140    C+G   ...obeNotificationClient.exe    N/A      |
|    0   N/A  N/A     25160    C+G   ...qxf38zg5c\Skype\Skype.exe    N/A      |
|    0   N/A  N/A     26140    C+G   ...4__8j3eq9eme6ctt\IGCC.exe    N/A      |
+-----------------------------------------------------------------------------+

C:\Users\Again>
C:\Users\Again>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_Oct_11_22:11:21_Pacific_Daylight_Time_2021
Cuda compilation tools, release 11.4, V11.4.152
Build cuda_11.4.r11.4/compiler.30521435_0

C:\Users\Again>

当前系统状态

  1. NVIDIA 驱动和 CUDA 支持
    • 驱动版本: 528.92
    • 支持的 CUDA 版本 : 12.0 (来自 nvidia-smi)
    • 已安装的 CUDA 工具包版本 : 11.4 (来自 nvcc --version)
  2. GPU 信息 :
    • GPU: NVIDIA GeForce 系列(具体型号未完全显示)

安装 PyTorch 的最佳实践

在 Conda 环境中安装 PyTorch 时,通常推荐让 Conda 管理 CUDA 工具包。这意味着即使我系统中安装了 CUDA 工具包,Conda 会在其环境中独立管理所需的 CUDA 版本,从而避免版本冲突。

3. 创建并激活新的 Conda 环境

创建一个新的环境(例如 pytorch_env)并指定 Python 版本(推荐 3.9 或更高):

bash 复制代码
conda create -n pytorch_env python=3.9
conda activate pytorch_env
4. 安装 PyTorch

基于我的 NVIDIA 驱动支持 CUDA 12.0,建议安装与 PyTorch 兼容的 CUDA 版本(如 CUDA 11.8)。虽然我的系统中安装了 CUDA 11.4,但 Conda 会在环境中管理所需的 CUDA 版本,不会与系统的 CUDA 冲突。

使用以下命令通过 Conda 安装 PyTorch 及其相关组件:

bash 复制代码
conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia

说明:

  • cudatoolkit=11.8:指定安装 CUDA 11.8 工具包,这与 PyTorch 的预编译版本兼容。
  • -c pytorch -c nvidia:指定从 PyTorch 和 NVIDIA 的 Conda 频道安装包,确保获得最佳兼容性。
  • 安装完毕后查看 conda list
bash 复制代码
(pytorch_env) C:\Users\Again>conda list
# packages in environment at D:\anaconda3\envs\pytorch_env:
#
# Name                    Version                   Build  Channel
blas                      1.0                         mkl
brotli-python             1.0.9            py39hd77b12b_8
ca-certificates           2024.11.26           haa95532_0
certifi                   2024.8.30        py39haa95532_0
charset-normalizer        3.3.2              pyhd3eb1b0_0
cuda-cccl                 12.4.127                      0    nvidia
cuda-cudart               12.4.127                      0    nvidia
cuda-cudart-dev           12.4.127                      0    nvidia
cuda-cupti                12.4.127                      0    nvidia
cuda-libraries            12.4.1                        0    nvidia
cuda-libraries-dev        12.4.1                        0    nvidia
cuda-nvrtc                12.4.127                      0    nvidia
cuda-nvrtc-dev            12.4.127                      0    nvidia
cuda-nvtx                 12.4.127                      0    nvidia
cuda-opencl               12.4.127                      0    nvidia
cuda-opencl-dev           12.4.127                      0    nvidia
cuda-profiler-api         12.4.127                      0    nvidia
cuda-runtime              12.4.1                        0    nvidia
cudatoolkit               11.8.0               hd77b12b_0
filelock                  3.13.1           py39haa95532_0
freetype                  2.12.1               ha860e81_0
giflib                    5.2.2                h7edc060_0
gmpy2                     2.1.2            py39h7f96b67_0
idna                      3.7              py39haa95532_0
intel-openmp              2023.1.0         h59b6b97_46320
jinja2                    3.1.4            py39haa95532_1
jpeg                      9e                   h827c3e9_3
lcms2                     2.12                 h83e58a3_0
lerc                      3.0                  hd77b12b_0
libcublas                 12.4.5.8                      0    nvidia
libcublas-dev             12.4.5.8                      0    nvidia
libcufft                  11.2.1.3                      0    nvidia
libcufft-dev              11.2.1.3                      0    nvidia
libcurand                 10.3.5.147                    0    nvidia
libcurand-dev             10.3.5.147                    0    nvidia
libcusolver               11.6.1.9                      0    nvidia
libcusolver-dev           11.6.1.9                      0    nvidia
libcusparse               12.3.1.170                    0    nvidia
libcusparse-dev           12.3.1.170                    0    nvidia
libdeflate                1.17                 h2bbff1b_1
libjpeg-turbo             2.0.0                h196d8e1_0
libnpp                    12.2.5.30                     0    nvidia
libnpp-dev                12.2.5.30                     0    nvidia
libnvfatbin               12.4.127                      0    nvidia
libnvfatbin-dev           12.4.127                      0    nvidia
libnvjitlink              12.4.127                      0    nvidia
libnvjitlink-dev          12.4.127                      0    nvidia
libnvjpeg                 12.3.1.117                    0    nvidia
libnvjpeg-dev             12.3.1.117                    0    nvidia
libpng                    1.6.39               h8cc25b3_0
libtiff                   4.5.1                hd77b12b_0
libuv                     1.48.0               h827c3e9_0
libwebp                   1.3.2                hbc33d0d_0
libwebp-base              1.3.2                h3d04722_1
lz4-c                     1.9.4                h2bbff1b_1
markupsafe                2.1.3            py39h2bbff1b_0
mkl                       2023.1.0         h6b88ed4_46358
mkl-service               2.4.0            py39h2bbff1b_1
mkl_fft                   1.3.11           py39h827c3e9_0
mkl_random                1.2.8            py39hc64d2fc_0
mpc                       1.1.0                h7edee0f_1
mpfr                      4.0.2                h62dcd97_1
mpir                      3.0.0                hec2e145_1
mpmath                    1.3.0            py39haa95532_0
networkx                  3.2.1            py39haa95532_0
numpy                     2.0.1            py39h055cbcc_1
numpy-base                2.0.1            py39h65a83cf_1
openjpeg                  2.5.2                hae555c5_0
openssl                   3.0.15               h827c3e9_0
pillow                    11.0.0           py39hb5480e2_0
pip                       24.2             py39haa95532_0
pysocks                   1.7.1            py39haa95532_0
python                    3.9.20               h8205438_1
pytorch                   2.5.1           py3.9_cuda12.4_cudnn9_0    pytorch
pytorch-cuda              12.4                 h3fd98bf_7    pytorch
pytorch-mutex             1.0                        cuda    pytorch
pyyaml                    6.0.2            py39h827c3e9_0
requests                  2.32.3           py39haa95532_1
setuptools                75.1.0           py39haa95532_0
sqlite                    3.45.3               h2bbff1b_0
sympy                     1.13.2           py39haa95532_0
tbb                       2021.8.0             h59b6b97_0
torchaudio                2.5.1                    pypi_0    pypi
torchvision               0.20.1                   pypi_0    pypi
typing_extensions         4.11.0           py39haa95532_0
tzdata                    2024b                h04d1e81_0
urllib3                   2.2.3            py39haa95532_0
vc                        14.40                haa95532_2
vs2015_runtime            14.42.34433          h9531ae6_2
wheel                     0.44.0           py39haa95532_0
win_inet_pton             1.1.0            py39haa95532_0
xz                        5.4.6                h8cc25b3_1
yaml                      0.2.5                he774522_0
zlib                      1.2.13               h8cc25b3_1
zstd                      1.5.6                h8880b57_0

(pytorch_env) C:\Users\Again>
5. 验证安装

安装完成后,验证 PyTorch 是否正确安装并能够使用 GPU:

  1. 打开 Python 解释器

    bash 复制代码
    python
  2. 输入以下代码

    python 复制代码
    import torch
    print("PyTorch 版本:", torch.__version__)
    print("CUDA 可用:", torch.cuda.is_available())
    if torch.cuda.is_available():
        print("使用的 GPU:", torch.cuda.get_device_name(0))

    预期输出(示例):

    PyTorch 版本: 2.0.0
    CUDA 可用: True
    使用的 GPU: NVIDIA GeForce GTX 1660
    
python 复制代码
(pytorch_env) C:\Users\Again>python
Python 3.9.20 (main, Oct  3 2024, 07:38:01) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print("PyTorch 版本:", torch.__version__)
PyTorch 版本: 2.5.1
>>> print("CUDA 可用:", torch.cuda.is_available())
CUDA 可用: True
>>> if torch.cuda.is_available():
...     print("使用的 GPU:", torch.cuda.get_device_name(0))
...
使用的 GPU: NVIDIA GeForce RTX 3060 Laptop GPU
>>>

系统和 Conda 环境中的 CUDA 配置如下:

系统级别的 CUDA 配置

  1. NVIDIA 驱动版本: 528.92
  2. nvidia-smi 显示的 CUDA 版本: 12.0
  3. 已安装的 CUDA 工具包版本 : 11.4(通过 nvcc --version 确认)

Conda 环境中的 CUDA 配置

  1. Conda 环境名称 : pytorch_env
  2. 安装的 cudatoolkit 版本: 11.8
  3. 安装的 pytorch-cuda 版本: 12.4
  4. 安装的 PyTorch 版本: 2.5.1
  5. PyTorch 能否使用 GPU : 是 (CUDA 可用: True)

分析与解释

1. 系统级别的 CUDA 与 Conda 环境的 CUDA
  • 系统级别的 CUDA:

    • 我的系统安装了 CUDA 工具包 11.4,并且 NVIDIA 驱动支持 CUDA 12.0。
    • 这主要用于系统范围内的 CUDA 应用开发和运行,不直接影响 Conda 环境中的包。
  • Conda 环境的 CUDA:

    • 在 Conda 环境 pytorch_env 中,安装了 cudatoolkit 11.8 和 pytorch-cuda 12.4。
    • Conda 环境中的 cudatoolkit 是独立于系统级别的 CUDA 安装,专门为该环境中的包(如 PyTorch)管理依赖。
    • 这意味着即使系统中安装了不同版本的 CUDA,Conda 环境中的包会使用自己指定的 CUDA 版本,避免版本冲突。
2. PyTorch 使用的 CUDA
  • PyTorch :
    • 我安装的 PyTorch 版本为 2.5.1,配置了 cudatoolkit 11.8 和 pytorch-cuda 12.4。
    • PyTorch 会优先使用 Conda 环境中的 cudatoolkit,而不是系统级别的 CUDA 工具包。
    • 通过我的测试 (torch.cuda.is_available() 返回 True 并且成功识别 GPU),PyTorch 已成功配置并能够利用 NVIDIA GeForce RTX 3060 Laptop GPU 进行加速计算。
3. 兼容性与功能性
  • 驱动与 CUDA 版本:

    • NVIDIA 驱动版本 528.92 支持 CUDA 12.0,这对系统级别和 Conda 环境中的 CUDA 都是兼容的。
    • Conda 环境中的 cudatoolkit 11.8 在驱动支持的范围内,不会引发冲突。
  • 独立管理:

    • Conda 环境中的 CUDA 是独立管理的,确保了不同项目或环境之间的 CUDA 版本不会互相干扰。
    • 这种隔离有助于维护多个项目所需的不同依赖,提升开发效率和系统稳定性。

总结

我的系统和 Conda 环境中的 CUDA 配置是兼容且功能正常的。具体来说:

  • 系统驱动 支持更高版本的 CUDA(12.0),这为系统级别的应用提供了更大的灵活性。
  • Conda 环境 独立使用 cudatoolkit 11.8 和 pytorch-cuda 12.4,确保 PyTorch 能够高效地利用 GPU 进行计算。
  • PyTorch 已成功检测并使用 NVIDIA GeForce RTX 3060 Laptop GPU,表明安装和配置均已正确完成。

建议

  1. 无需修改现有配置:

    • 既然 PyTorch 能够正常使用 GPU,且没有显示任何冲突或错误,建议保持现有配置不变。
  2. 管理 Conda 环境:

    • 继续使用 Conda 环境来管理项目依赖,这样可以确保各项目间的依赖隔离,避免版本冲突。
  3. 更新与维护:

    • 定期更新 Conda 和相关包,以获取最新的功能和安全补丁。
    • 如果有特定需求需要系统级别的 CUDA 工具包,可以根据需要进行安装或更新,但需确保与 Conda 环境的独立性。
  4. 进一步优化 (可选):

    • 如果我需要在系统级别开发 CUDA 应用,可以考虑安装与 Conda 环境中一致或更高版本的 CUDA 工具包。
    • 使用 Conda 环境来管理所有与 PyTorch 相关的包,确保依赖的统一性和稳定性。

验证与测试

设置pycharm解释器


为了确保一切运行正常,可以运行以下简单的 PyTorch 脚本,进一步验证 GPU 的使用情况:

python 复制代码
import torch

# 检查 CUDA 是否可用
if torch.cuda.is_available():
    device = torch.device("cuda")
    print(f"使用 GPU: {torch.cuda.get_device_name(0)}")
else:
    device = torch.device("cpu")
    print("使用 CPU")

# 创建一个张量并移动到设备
x = torch.tensor([1.0, 2.0, 3.0]).to(device)
print(x)

# 执行简单的 GPU 操作
y = x * 2
print(y)

输出:

bash 复制代码
D:\anaconda3\envs\pytorch_env\python.exe F:\pythonProject1\my_tiktoken_test.py 
使用 GPU: NVIDIA GeForce RTX 3060 Laptop GPU
tensor([1., 2., 3.], device='cuda:0')
tensor([2., 4., 6.], device='cuda:0')

进程已结束,退出代码为 0

代码

python 复制代码
import torch

if torch.cuda.is_available():
    print("CUDA is available.")
    print(f"GPU name: {torch.cuda.get_device_name(0)}")
    print(f"Total memory: {torch.cuda.get_device_properties(0).total_memory / 1024**2} MB")
else:
    print("CUDA is not available.")
python 复制代码
D:\anaconda3\envs\pytorch_env\python.exe F:\pythonProject1\my_tiktoken_test.py 
CUDA is available.
GPU name: NVIDIA GeForce RTX 3060 Laptop GPU
Total memory: 6143.5 MB

进程已结束,退出代码为 0

结论

我的系统和 Conda 环境中的 CUDA 配置已正确安装并正常工作。PyTorch 能够成功检测和利用我的 NVIDIA GPU 进行加速计算。

相关推荐
gxhlh3 小时前
局域网中 Windows 与 Mac 互相远程连接的最佳方案
windows·macos
Mbblovey6 小时前
Picsart美易照片编辑器和视频编辑器
网络·windows·软件构建·需求分析·软件需求
weixin_307779138 小时前
PyTorch基本功能与实现代码
人工智能·pytorch
weixin_307779139 小时前
分析一个深度学习项目并设计算法和用PyTorch实现的方法和步骤
人工智能·pytorch·python
笔耕不辍cj9 小时前
两两交换链表中的节点
数据结构·windows·链表
Ase5gqe10 小时前
Windows 配置 Tomcat环境
java·windows·tomcat
鲤鱼不懂14 小时前
jupyter notebook环境问题
pytorch·python·jupyter
Francek Chen14 小时前
【深度学习基础】多层感知机 | 模型选择、欠拟合和过拟合
人工智能·pytorch·深度学习·神经网络·多层感知机·过拟合
dntktop15 小时前
隐私保护+性能优化,RyTuneX 让你的电脑更快更安全
运维·windows
工业甲酰苯胺18 小时前
深入解析 Spring AI 系列:解析返回参数处理
javascript·windows·spring