显卡、显卡驱动、CUDA之间的关系
-
显卡(GPU):显卡可用于计算,其从host端拿命令和数据。深度学习本身需要大量计算,而GPU的并行计算能力,在过去几年里恰当地满足了深度学习的需求。目前用于计算的显卡主流是Nvidia公司的显卡。
-
驱动:显卡驱动就是用来驱动显卡的程序,它是硬件所对应的软件。驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。没有显卡驱动,就不能识别GPU硬件,不能调用其计算资源。
-
CUDA:是Nvidia推出的只能用于自家GPU的并行计算框架。只有安装这个框架才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。CUDA运算是建立在受支持的GPU硬件设备之上的,没有相应的显卡、受支持的驱动,CUDA无法正常工作。
参考链接:https://www.zhihu.com/question/59184480/answer/162623008
以下主要涉及到在ubuntu系统下安装NVIDIA Driver(显卡驱动)和 CUDA Toolkit(常简称CUDA),以及一些常用命令操作。
传统上,先安装好NVIDIA Driver,再安装CUDA Toolkit。
常用操作
1.显卡驱动信息:
nivida-smi // 如果出现GPU列表,则驱动正常
2.查看显卡硬件型号以及系统推荐可安装的驱动版本号:
sudo ubuntu-drivers devices
3.搜索系统中相关的cuda软件包:
apt search cuda | grep cuda
4.安装驱动(3种方式)
①apt默认安装方式安装驱动(xxx是版本号):
sudo apt install nividia-driver-xxx
②若同意安装推荐版本,可直接使用自动安装:
sudo ubuntu-drivers autoinstall
③去NVIDIA官网下载最新版驱动再手动安装:https://www.nvidia.com/Download/index.aspx
5.安装CUDA Toolkit(2种方式)
①apt默认安装方式:
sudo apt install cuda
②去官网下载安装: https://developer.nvidia.com/cuda-toolkit-archive
6.安装成功后,查看所装的cuda版本号:
nvcc -V
常见问题
1.使用nivida-smi
查看显卡驱动时,出现报错“驱动与cuda版本不匹配”
接下来则需要检查驱动和CUDA二者是否正常以及相应的版本是否匹配。
若显卡驱动有问题,常见解决方式:①重启系统,原因是可能系统在自动升级更新驱动版本后还未重启过,所以驱动不能正常运行;②重启系统仍不能解决,则卸载显卡驱动再重装驱动;③最后解决不了则重装系统。
若显卡驱动正常只是版本升级更新了,而导致CUDA与其版本不匹配,则直接重新安装与其相匹配的CUDA版本即可。
2.使用nvcc -V
命令时,若出现找不到该命令,但是cuda已经安装好了,则可能是cuda环境变量有问题。在.bashrc文件中配置环境变量,格式可参考(具体的路径按实际路径更改):
export PATH=/usr/local/cuda-x.x/bin:$PATH // 环境变量PATH设置可执行程序的搜索路径
export LD_LIBRARY_PATH=/usr/local/cuda-x.x/lib64:$LD_LIBRARY_PATH //LD_LIBRARY_PATH设置动态链接库的搜索路径
注:CUDA, cuRAND 等动态库均位于
/usr/local/cuda-x.x/lib64
路径中;对于动态库cuBLAS,在CUDA 10.0以前,其位于/usr/local/cuda-x.x/lib64
路径下,但在CUDA 10.1中,被迁移到/usr/lib/x86_64-linux-gun
中。
此外,查找cuBLAS动态库路径:sudo find / -iname libcublas*