Nvidia cuda 与 cudatoolkit 的区别
注意:确保编译CUDA版本和运行时CUDA版本匹配。你可以在PyTorch网站上查看支持的CUDA版本的预编译包。
在使用 Anaconda 安装 Pytorch 深度学习框架时,可以发现 Anaconda 会自动为我们安装 cudatoolkit
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
上述安装的 cudatoolkit 与通过 Nvidia 官方提供的 CUDA Toolkit 不一样
Nvidia 官方提供的 CUDA Toolkit 是一个完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项;
对于 Pytorch 而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。
所以Anaconda 在安装 Pytorch 等需要使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit .
通过 Anaconda 安装的应用程序包位于安装目录下的 /pkg 文件夹中,如下图所示。可以看到 conda 安装的 cudatoolkit 中主要包含的是支持已经编译好的 CUDA 程序运行的相关的动态链接库。
按照这种说法如果系统已经安装了Nvidia 官方提供的 CUDA Toolkit,则不需要再次安装cudatoolkit
Pytorch 使用特定的 cuda 版本
指定 Pytorch 使用的 cuda 版本
方法一:修改软链接 /usr/local/cuda 所指向的 cuda 安装目录( 若不存在则新建 )
方法二: 设置环境变量 CUDA_HOME 指向所需使用的 cuda 版本的安装目录
临时设置 Pytorch 使用新安装的 cuda ,则可以通过 export 命令修改全局变量。这种设置方式在当前终端退出后即失效。
LD_LIBRARY_PATH 变量指定进行链接的 cuda 库文件的路径
export CUDA_HOME=/usr/local/cuda-10.0
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
或者
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
想要永久设置上述 cuda 设置,用户可以直接在自己的 bash 设置文件 ~/.bashrc 文件尾部加入上述命令,保存后再通过 source ~/.bashrc 执行文件,即可完成当前终端的环境变量修改。