如何安裝 CUDA、cuDNN 到 Ubuntu 20.04?

玩深度學習第一件事,就是先把 CUDA、cuDNN 裝好!一聽到「裝環境」我們總是眉頭一皺,這過程肯定有許多坑等著。但其實真的不難,就讓我們看下去!

Step 1:確認 GPU 支援的 CUDA 版本

先確認手上的 GPU 是否有支援 CUDA (如果不支援怎麼還買XD),如果已經安裝可以使用以下指令查詢顯卡規格

sudo lshw -numeric -C display

以我為例,會列出一張 GTX 750 (太窮先拿舊顯卡玩玩練習),以及 Intel CPU 的核顯

  *-display                 
       description: VGA compatible controller
       product: GM107 [GeForce GTX 750] [10DE:1381]
       vendor: NVIDIA Corporation [10DE]
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a2
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:36 memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:e000(size=128) memory:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:412]
       vendor: Intel Corporation [8086]
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 06
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:34 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64) memory:c0000-dffff

知道型號後到以下網址查詢是否支援:

https://developer.nvidia.com/cuda-gpus

Step 2:安裝 CUDA

使用剛安裝好、乾淨的 Ubuntu 來裝比較不會出錯,如果已經安裝過舊版 CUDA 可能需要先移除。

安裝 CUDA 麻煩的地方就是他的版本有最低需求顯卡驅動版號,懶人法就是不要自己安裝驅動!先去下載 CUDA 安裝,過程中他就會自動幫你安裝正確的驅動,很人性!

到 nvidia 官網下載 CUDA

https://developer.nvidia.com/cuda-toolkit-archive

依照你的系統選擇,這邊以 x86 Ubuntu 20.04 為例,並且點選 dev(local) 的安裝方法。

如何安裝 CUDA、cuDNN 到 Ubuntu 20.04?

下面就會列出安裝指令,依序把他複製貼上就完成了!

如何安裝 CUDA、cuDNN 到 Ubuntu 20.04?

安裝完後,先重開機!緊接著確認 Driver 是否也有在裝 CUDA 時正確裝上。如果有回傳表示 ok!

$ nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.42.01    Driver Version: 470.42.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| 31%   47C    P0     1W /  38W |    262MiB /   981MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

Step 3:安裝 nvidia-cuda-toolkit

這步驟可選,但可能以後會用到 CUDA 比較底層的功能,就順手安裝一下

sudo apt install nvidia-cuda-toolkit

安裝完後用以下指令確認版號

$ nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

Step 4:安裝 cuDNN

一樣需要到 nvidia 官網下載,但必須先申請 nvidia developer 的帳號才行下載。

https://developer.nvidia.com/rdp/cudnn-archive

cuDNN 也必須對應 CUDA 版號來選擇,這邊我們選 for CUDA 11.x 的 x86_64 Linux 版下載

如何安裝 CUDA、cuDNN 到 Ubuntu 20.04?

再依序使用以下指令安裝,或直接參考官方文件指令

# 解壓檔案,需替換成你下載的檔名
tar -xzvf cudnn-11.3-linux-x64-v8.2.1.32.tgz

# 將解壓的檔案搬到對應資料夾下就完成!
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include 
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

完成!可以開始享受 GPU 的加速啦!如果覺得我文章內容對你有幫助的話,請在文章後面幫我按 5 個讚!讓我知道大家都喜歡什麼內容哦!

延伸閱讀

最詳細的 Stable diffusion WebUI 操作教學 – txt2img
如何在 M1 Macbook 上跑 Stable Diffusion?
如何在 Jetson Nano 上安裝 TensorFlow 以及 PyTorch?
使用 Face Recognition 套件快速建立自己的人臉辨識系統!

參考資料

Ubuntu 16.04 安裝 CUDA、cuDNN 教學
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux
How to install the latest Nvidia drivers on Ubuntu 16.04 Xenial Xerus
Linux 如何用指令查詢 Nvidia 驅動程式版本與 GPU 顯示卡資訊?

Written by J
雖然大學唸的是生物,但持著興趣與熱情自學,畢業後轉戰硬體工程師,與宅宅工程師們一起過著沒日沒夜的生活,做著台灣最薄的 intel 筆電,要與 macbook air 比拼。 離開後,憑著一股傻勁與朋友創業,再度轉戰軟體工程師,一手扛起前後端、雙平台 app 開發,過程中雖跌跌撞撞,卻也累計不少經驗。 可惜不是那 1% 的成功人士,於是加入其他成功人士的新創公司,專職開發後端。沒想到卻在採前人坑的過程中,拓寬了眼界,得到了深層的領悟。