【Linux】如何不借助 root 權限安裝 CUDA?

咱們能不能作到不借助 root 權限給 Linux 系統安裝 CUDA?bash

答案是有可能的,可是「醜話說在前面」,顯卡驅動須要比較新才行。服務器

那麼咱們爲何會有這種奇怪的需求呢?一種可能的狀況是,服務器由於不一樣的人使用的版本不同的緣由,沒法輕易改動 CUDA 的版本。可是咱們做爲普通用戶,又想使用新版的 CUDA(而更新驅動通常不會對其餘用戶產生影響,除非他們正在佔用顯卡)。那麼該怎麼作呢?工具

安裝 CUDA

拿目前最新的版本 CUDA 10.2 爲例。首先,咱們在 NVIDIA 官網找到 CUDA 下載連接,選擇 runfile:測試

下載好的文件咱們簡稱爲 cuda.run。下載完畢以後,運行安裝工具。運行這個文件有兩種方法。任選其一便可。spa

# 方法一:修改文件屬性,使其能夠運行
chmod +x cuda.run
./cuda.run
# 方法二:直接 sh
sh cuda.run

運行安裝工具後,首先是接受 EULA:3d

若是是舊版本(好比 9.x)的 CUDA,閱讀 EULA 的界面會特別長。這裏的一個小技巧是,不要按住回車鍵,而是按住空格鍵來進行跳過code

這裏咱們不要安裝驅動(Driver),由於驅動必定須要 root 纔可以安裝。一旦選擇,一定會安裝失敗。咱們能夠移動光標到這些不須要的項目,而後按下Enter取消勾選:blog

除了 Toolkit 之外,下面的幾個其實也不須要。能夠根據狀況選擇安裝(好比能夠安裝 Samples,後續測試 CUDA 以及 cuDNN 是否安裝成功)。這裏我選擇的是僅安裝 Toolkit。get

接下來咱們的任務,就是修改安裝路徑到本身的 home 下。默認狀況下,it

  • CUDA 會被安裝在:/usr/local/cuda-10.2/
  • Library 會被安裝在:/usr/local/cuda-10.2/lib64/

因此咱們要對這兩個進行修改。打開 Options。若是不安裝 Driver 和 Samples,那麼這兩個不用管。不然也須要修改他們的安裝位置。打開 Toolkit Options,而後 Change Toolkit Install Path,修改成/home/<username>/cuda-10.2/

而後 Done,返回上一級,再選擇 Library install path:

並將安裝目錄修改成:/home/<username>/cuda-10.2/lib64/。若是是 9.x 版本的 CUDA,一旦在前面安裝了 CUDA 本體的安裝位置,那麼 library 的位置會自動變成本體安裝目錄下的 lib64

而後就能夠開始安裝了。

安裝完畢以後,須要配置一下 .bashrc,在其下方添加:

export PATH=/home/<username>/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/<username>/cuda-10.2/lib64/

保存後運行一下 source .bashrc,就能夠用 nvcc -V 試試有沒有安裝成功了。

安裝 cuDNN

咱們還能夠考慮安裝 cuDNN。官網下載須要註冊並登陸:https://developer.nvidia.com/cudnn

下載完 .tar.gz 以後,能夠用 tar -zxvf 解壓縮,而後將裏面的文件拷貝到 CUDA 安裝目錄下的指定位置便可。具體爲:

cp <CUDNN>/cuda/include/cudnn.h <CUDA>/include/
cp <CUDNN>/cuda/lib64/libcudnn* <CUDA>/lib64
chmod a+r <CUDA>/include/cudnn.h <CUDA>/lib64/libcudnn*

到此,CUDA 10.2 與 cuDNN 安裝完畢。

可是,有比較大的可能會由於你安裝的 CUDA 版本太新,而服務器上的顯卡驅動又太舊了(好比是 CUDA 9.0 安裝包自帶的驅動),那麼仍舊是沒有辦法正常使用的(好比使用 GPU 版的 PyTorch)。想要真正能用,仍是要說服管理員將服務器的驅動進行更新。可是能夠放心的是,更新了驅動以後,舊版本的 CUDA 依舊是能夠用的。

(這篇文章的方法借鑑自:Install Cuda without root - Stack Overflow

相關文章
相關標籤/搜索