深度学习中通常会涉及到cuda环境相关的问题,特别是torch版本,cuda版本等兼容问题。
主要涉及到这四个方向
- 显卡驱动:cuda driver 。驱动api (driver api)通过nvidia-smi查看,是所有cuda环境的基础
- cudatoolkit:通常意义上说的cuda,即运行api(runtime api),本质是一个工具包。与驱动没有强绑定,通过nvcc --version查看
- cudnn:一个深度学习计算设计的加速库,可以理解为是cuda的一个补充插件,在编译tensorrt等库的时候需要
- pytorch-cuda:torch中的cuda依赖。安装torch的时候一般都要选择cuda版本,但是与cuda版本并不完全依赖,版本不一样多数时候也是可以运行的,所以可以根据需求选在torch版本。
cuda driver
显卡驱动,所有cuda环境的基础。在nvidia driver中选择与系统向适应的版本下载安装
通过nvidia-smi查看信息。其中的cuda version代表当前驱动下所能支持的最高cuda版本。并不是实际安装的cuda(nvcc)版本
cuda与cudnn下载
https://k2-fsa.github.io/k2/installation/cuda-cudnn.html
cuda toolkit
通常意义下指的cuda。本质是一个工具包。也就是nvcc --version相关的信息
在cuda toolkit中选择满足驱动的版本下载。
一个设备上可以安装多个cuda。比如同时安装了cuda 9.0、cuda 10.0、cuda 11.0.。nvidia显卡驱动跟cuda toolkit之间没有强行的绑定关系
linux系统cuda默认系统路径是/usr/local/cuda
可以通过软链接的方式修改cuda指向
也可以修改环境变量指定cuda的实际路径地址
修改~/.bashrc
vim ~/.bashrc
# 添加下面信息
export path=$path:/you/path//cuda-11.7/bin
# 添加完后
source ~/.bashrc
cuda toolkit的安装过成中会默认自带驱动的安装。已经安装好驱动的话,要取消驱动的安装选项
accept
取消驱动的安装,在option中选择tool的安装路径
cudnn
cudnn是一个为深度学习计算设计的软件库,运行gpu版的tensorrt或者其他编译功能的时候都需要安装cudnn才行
选择与cuda相匹配的cudnn版本:cudnn历史版本
以cudnn-11.x为例
下载后解压
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz
得到一个cudnn文件夹
将路径下的lib(或者lib64文件写入环境变量中)
vim ~/.bashrc
# 添加
export ld_library_path=/your/path/to/cudnn/lib:$ld_library_path
# 退出后重启.bashrc
source ~/.bashrc
将所有头文件与库文件拷到cuda的安装路径下
cp cudnn/include/cudnn*.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
# 重置读写权限
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
查看cudnn是否安装成功与版本信息
cat /usr/local/cuda/include/cudnn.h | grep cudnn_major -a 2
pytorch-cuda
pytorch安装gpu版本时通常要选择对应的cuda版本
但是实际上很多时候不需要与cuda(nvcc)的版本一样也是能运行的。可以直接选择合适的torch版本而不需要重新安装cuda
发表评论