nvidia-smi nvcc -V 及 CUDA、cuDNN 安装
相关文章:
1. 问题缘由
之前查找 CUDA 版本时都是直接使用的 nvidia-smi
指令,可以看到当前的 CUDA 版本是 12.0。
这时在使用 PyTorch 的时候,默认安装的与该 CUDA 相同版本的 PyTorch。
但是后面在编译程序的时候,问题就出现了程序内会报 CUDA_TOOLKIT_ROOT_DIR not found or specified
的错误,有些摸不着头脑。
然后就发现使用 nvcc-V
命令查看的时候,是找不到 CUDA 的。
2. 分析
这是因为 CUDA 有两种 API:运行时的 API 和驱动 API,即所谓的 Runtime API
与 Driver API
。nvidia-smi
的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API 的型号,即上面的 12.0。
而 nvcc-V
的结果是对应 CUDA Runtime API。而这时的 CUDA Runtime API 还没有安装。
注意,nvcc
为 NVIDIA Cuda compiler driver
的缩写,是 NVIDIA 的 CUDA 编译器驱动程序,是用于编译 CUDA 代码的工具。它主要用户将包含 CUDA 扩展的 C/C++ 代码编译为能够在 NVIDIA GPU 上运行的可执行文件或库。
3. CUDA Driver API 安装
3.1 Software & Updates
如果想更新或安装 nvidia-smi
上的 CUDA 版本,最简单的方式是直接打开 Software & Updates
,点击 Additional Drivers
选择一个驱动版本即可。
3.2 官网下载
在官网下载能看见更直观的 CUDA 版本:https://www.nvidia.cn/geforce/drivers/
选择对应的显卡款式安装即可。
4. CUDA Runtime API 安装
- 命令行键入
nvidia-smi
可以看到系统支持的最大CUDA版本,如果没有就不用管。因为上面截图过了这里就不放截图了。因为上面显示版本为 12.0,所以这里安装的 CUDA 最大版本应该是 12.0。 - 在英伟达官网找到想要安装的 CUDA 版本:https://developer.nvidia.com/cuda-11.1.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal
-
依照上面流程,输入:
sudo sh cuda_11.1.0_455.23.05_linux.run
-
键入accept:
-
注意,这个步骤如果前面安装了 Driver,即步骤1内显示了版本时,这里不要安装 Driver,否则这里的 CUDA 会安装失败;如果步骤1未安装,这里可以勾选。(这里我的.run软件不小心删了,拿的别人的,所以除了版本均一致)
-
安装成功后,打开.bashrc 或 .zshrc,写入以下信息:
export PATH=$PATH:/usr/local/cuda/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
-
用 source 更新以下环境或重新打开一个终端,命令行输入
nvcc -V
,显示下面内容就是成功了:
4.1 注意事项
在下载 PyTorch 时,这里的 Compute Platform 是运行的平台,这里是不包括 CUDA 安装的。
4.2 Conda 内安装方式
在 Conda 内安装指定版本的 torchvision
,假设需要的是 CUDA 11.7,可以使用以下命令:
conda install cudatoolkit=11.7 -c pytorch -c nvidia
而这种方式安装的 toolkit,只包含了运行时的库,而不是完整的 CUDA 工具链(如 vcc
编译器)。所以这时输入命令 nvcc -V
,还是找不到的。
如果需要使用 nvcc
编译器等完整的 CUDA 工具链,需要安装完整的 CUDA Toolkit。
除了上面所述的方法外,还可以尝试使用 conda-forge
channel 中的 cudatoolkit-dev
包(注意,这个包并非官方发布,可能不适用于所有版本和平台):
conda install -c conda-forge cudatoolkit-dev
5. 安装 cuDNN
5.1 cuDNN下载
- cuDNN 地址如下 https://developer.nvidia.com/rdp/cudnn-download,不过要注意的是,需要注册一个账号,才能进入下载界面,建议下载 tar 的:
-
详细的安装教程如下所示:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
-
解压 tar 后,使用以下指令将文件复制进 CUDA toolkit 目录:
$ sudo cp cudnn--archive/include/cudnn.h /usr/local/cuda/include
$ sudo cp -P cudnn--archive/lib/libcudnn /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*这样就可以使用了。