安装 conda 和 cuda 为何要如此复杂?!
Why is it so complicated to install conda and cuda!
安装 Conda
Anaconda 其实包含了太多不需要的东西。我们直接安装 Miniconda,如果真的缺少需要的东西,我们再自己进行安装。
Miniconda 安装页:Miniconda(https://docs.conda.io/en/latest/miniconda.html)
配置 Conda
为了让 Conda 更加 localize,我们需要进行一些配置。总得来说,需要下面 3 件事情:
- 配置 conda 源。加速 conda 下载;
- (可选)配置 pip 源。加速 pip 下载;
配置 conda 源
首推使用清华源。进入官网后,搜索 conda,会出现具体的配置提示。
Anaconda 镜像使用帮助(https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)。
摘抄至 2023 年 7 月 27 日的官网:
Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。
Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。
TUNA 还提供了 Anaconda 仓库与第三方源(conda-forge、msys2、pytorch等,查看完整列表,更多第三方源可以前往校园网联合镜像站查看)的镜像,各系统都可以通过修改用户目录下的 .condarc 文件来使用 TUNA 镜像源。Windows 用户无法直接创建名为 .condarc 的文件,可先执行conda config --set show_channel_urls yes
生成该文件之后再修改。
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
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
配置 pip 源
同上类似,去清华源找到对应的 pypi 配置帮助页(https://mirrors.tuna.tsinghua.edu.cn/help/pypi/) 即可。
安装 cuda
记得切换 conda 环境!防止后续污染 base 环境。
注意本处安装 cuda 的目的是为了给 pytorch 这样的框架使用,仅能保证 pytorch 调用正常。
安装 cuda
确定 cuda 版本
安装好显卡驱动后,在 powershell 里使用 nvidia-smi 命令可以查看这个显卡驱动建议的、最高支持的 cuda 版本:
nvidia-smi
Thu Jul 27 15:27:15 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 536.67 Driver Version: 536.67 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| 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 RTX 3060 ... WDDM | 00000000:01:00.0 Off | N/A |
| N/A 49C P8 12W / 96W | 159MiB / 6144MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 16088 C+G C:\Program Files\Tencent\QQNT\QQ.exe N/A |
+---------------------------------------------------------------------------------------+
本机当前驱动最高支持 CUDA Version: 12.2
。
安装 cuda
查看可以用来安装的cudatoolkit的所有版本都有哪些:
conda search cudatoolkit
Loading channels: done
# Name Version Build Channel
cudatoolkit 8.0 4 anaconda/pkgs/main
cudatoolkit 9.0 1 anaconda/pkgs/main
cudatoolkit 9.2 0 anaconda/pkgs/main
cudatoolkit 10.0.130 0 anaconda/pkgs/main
cudatoolkit 10.1.168 0 anaconda/pkgs/main
cudatoolkit 10.1.243 h74a9793_0 anaconda/pkgs/main
cudatoolkit 10.2.89 h74a9793_0 anaconda/pkgs/main
cudatoolkit 10.2.89 h74a9793_1 anaconda/pkgs/main
cudatoolkit 11.0.221 h74a9793_0 anaconda/pkgs/main
cudatoolkit 11.3.1 h59b6b97_2 anaconda/pkgs/main
cudatoolkit 11.8.0 hd77b12b_0 anaconda/pkgs/main
可以看到,当前 conda 提供的 cuda 最高版本也才 11.8.0,低于驱动支持的最高版本。因此,我们可以直接安装 cuda。
conda install cudatoolkit -y
安装 cuDNN
确定 cuDNN 版本
在 cuDNN 仓库(https://developer.nvidia.com/rdp/cudnn-archive) 中找到适用于某个 cudatoolkit 版本的 cudnn 版本。
此处的 for CUDA
指的是之前 conda 安装的 cudatoolkit。
查看 conda 提供的版本:
conda search cudnn
Loading channels: done
# Name Version Build Channel
cudnn 7.1.4 cuda8.0_0 anaconda/pkgs/main
cudnn 7.1.4 cuda9.0_0 anaconda/pkgs/main
cudnn 7.3.1 cuda10.0_0 anaconda/pkgs/main
cudnn 7.3.1 cuda9.0_0 anaconda/pkgs/main
cudnn 7.6.0 cuda10.0_0 anaconda/pkgs/main
cudnn 7.6.0 cuda10.1_0 anaconda/pkgs/main
cudnn 7.6.0 cuda9.0_0 anaconda/pkgs/main
cudnn 7.6.4 cuda10.0_0 anaconda/pkgs/main
cudnn 7.6.4 cuda10.1_0 anaconda/pkgs/main
cudnn 7.6.4 cuda9.0_0 anaconda/pkgs/main
cudnn 7.6.5 cuda10.0_0 anaconda/pkgs/main
cudnn 7.6.5 cuda10.1_0 anaconda/pkgs/main
cudnn 7.6.5 cuda10.2_0 anaconda/pkgs/main
cudnn 7.6.5 cuda9.0_0 anaconda/pkgs/main
cudnn 7.6.5 cuda9.2_0 anaconda/pkgs/main
cudnn 8.2.1 cuda11.3_0 anaconda/pkgs/main
cudnn 8.9.2.26 cuda11_0 anaconda/pkgs/main
安装 cuDNN
确定 build 项满足现在安装好的 cuda 即可。如果没有确定的需求,直接执行安装即可,不需要指定版本。
conda install cudnn -y
安装 pytorch
去 pytorch 官网(https://pytorch.org/get-started/locally/),复制推荐的安装命令。
conda install pytorch torchvision pytorch-cuda=11.8 -c pytorch -c nvidia -y
简单的验证和测试
python
Python 3.10.12 | packaged by Anaconda, Inc. | (main, Jul 5 2023, 19:01:18) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>>
>>> torch.cuda.is_available()
True
>>> ^Z