应用背景:darknet+yolov3训练自己数据,特定场景目标识别,小目标检测
CPU训练太慢,计算机上有GT 730显卡,虽挫但聊胜于无,搞之。
详情见参考链接,本文只做简要记录。
0. 查看显卡信息
(1)输入如下命令:
lshw -c video
(2)为了再次确认一遍,你还可以使用这个命令查看你可以使用的驱动:
ubuntu-drivers devices
(3)其他类似命令
root@ubuntu:/home/ubuntu# lspci |grep -i vga 02:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1)
(4)查看GPU型号
lspci | grep -i nvidia
(5)查看NVIDIA驱动版本
sudo dpkg --list | grep nvidia-*
1. 安装显卡驱动
(1)Software & Updates -> Additional Drivers选择所需版本安装即可(如,proprietary, tested)。
几经折腾,最后其实就这个方法搞定。
安装cuda时,其实包含了显卡驱动,而且是对应版本,所以安装显卡驱动应该可以跳过,直接在安装cuda时一起安装驱动。
但是,安装cuda时选择安装驱动,可能会报错,网上很多解决办法,有点麻烦。
因此,在Software & Updates -> Additional Drivers安装也是个不错的选择。
重启才能完成驱动安装。
(2)ubuntu命令行安装,效果类似(1)的方法
ubuntu-drivers devices sudo ubuntu-drivers autoinstall
驱动安装完成,重新启动,就能看到GPU识别成功了:
你也可以选择,只安装其中一个驱动,命令如下:
sudo apt install nvidia-340 (340等从ubuntu-drivers devices命令输出中选择)
(3)官方下载显卡驱动安装
2. 安装cuda
注意,不同版本cuda对显卡驱动版本有一定要求。比如,cuda-10.2要求驱动440版本,cuda-10.1要求驱动418版本。
上一步骤(1)安装驱动435版本,满足cuda-10.1的要求,因此,应当下载cuda-10.1进行安装。
官网下载安装包:
各个版本: CUDA Toolkit Archive
根据官网说明安装即可:
例如:CUDA Toolkit 10.2 Download
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run sudo sh cuda_10.2.89_440.33.01_linux.run
根据提示安装即可,如果上一步已经安装了驱动,这里要取消驱动安装。否则,很可能失败。
注意,在.bashrc文件末尾加入:
#cuda export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
3. 安装cudnn
官网下载安装包,安装即可,下载安装包需要注册NVIDIA账号。
注意,cudnn的版本应该与cuda版本对应。
各个版本:cuDNN Archive
下载了 deb 格式的文件,打开终端找到下载的deb 文件所在的位置,然后按步骤安装三个文件:
sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.1_amd64.deb
Runtime 和 Developer 版本的区别是:
developer library 包含了在Ubuntu系统上开发深度学习时所需的cuDNN头文件,如果你不需要开发编译任何深度学习程序,而只是将其用于运行某些深度学习应用,那么只下载“runtime library”就足够了。
我是把3个文件都下载下来了,分别安装。
主要参考链接:cuDNN的安装(版本选择, Runtime 还是 Developer)
验证那块有点不一样,因为我的情况是安装到/usr/include了。
官方安装指南:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequisites
4. 显示当前GPU使用情况
nvidia-smi
nvidia-smi(显示一次当前GPU占用情况)
nvidia-smi -l(ubuntu1804,每5秒刷新一次并显示)
watch -n 2 nvidia-smi (其中,2表示每隔6秒刷新一次终端的显示结果)
我这儿没有启动任何利用显存资源的进程,所以没有占用任何资源。
第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
第二栏的Temp:是温度,单位摄氏度。
第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
第五栏的Bus-Id是涉及GPU总线的东西
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
下面一张表示每个进程占用的显存使用率。
显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。
参考链接:
cuda-legacy-gpus
supported-gpus
Ubuntu16.04+cuda8.0安装教程
DOWNLOAD DRIVERS FOR NVIDIA GRAPHICS CARDS
nvidia-drivers-on-ubuntu-16-04-geforce-gt-730m
Ubuntu下安装CUDA8.0及nvidia驱动(详细教程)
rcuda
Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)
真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)
Ubuntu16.04+cuda8.0+caffe安装教程
NVIDIA CUDA Installation Guide for Linux
ubuntu 18.04 安装yolov3 + GPU + CUDA+ cuDNN
cuDNN Archive