應用背景: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