天天看點

給我一台新的伺服器,我會怎麼安排 CUDA

  • ???? 隻有實戰、不講理論、一文讀懂 ????
  • ???? 聲明: 作為全網 AI 領域 幹貨最多的部落客之一,❤️ 不負光陰不負卿 ❤️
給我一台新的伺服器,我會怎麼安排 CUDA

深度學習環境搭建過程中,初期階段,相信大家都會遇到,動不動 TensorFlow 或者 Pytorch 庫與Cuda、或者Cudnn 版本不比對的問題;

是以很多時候,在一台伺服器中安裝多個Cuda逐漸成為了各位搬磚大佬們的必然選擇

本文為大家揭秘一台全新伺服器、我會怎樣安排 Cuda、使得我的學習生産更為高效

???? 伺服器是團隊或者項目組的,是以cuda還是自己的好用!!!

第一部分為大家展示:Ubuntu系統 Cuda10.0 安裝過程
  • 安裝系統 :Ubuntu 18.04.5

???? 1 ​​cuda官網下載下傳位址​​

cat /proc/version (Linux檢視目前作業系統版本資訊)      
給我一台新的伺服器,我會怎麼安排 CUDA

???? 2 安裝

# 先對安裝包《cuda_10.0.130_410.48_linux.run》的屬性進行修改為可執行;

chmod 755 cuda_10.0.130_410.48_linux.run

# 不要使用 sudo 進行安裝
sh cuda_10.0.130_410.48_linux.run      
過程如下,按空格讀完協定,進行如下圖的操作:

備注: 這裡沒有安裝新的驅動,是因為:

  • 1: root 使用者 安裝的 驅動 能夠 支援目前 CUDA10.0的運作;
  • 2: 驅動的更新安裝,需要 root 權限 (也就是說 一台 Linux 伺服器 隻能 安裝 一個英偉達核心驅動),團隊的伺服器,我沒有權限去更新伺服器的顯示卡驅動;
  • 3:如果伺服器本身 驅動版本 高 能夠 同時 支援 CUDA10 和 CUDA9 ,那麼我們這裡安裝的 CUDA10.0, 後面運作程式便是可行的;
給我一台新的伺服器,我會怎麼安排 CUDA

???? 3:環境變量的配置

cd /home/zhijian
vim .bashrc

# 在最下方添加剛剛安裝cuda的路徑:
---
export PATH="/home/zhijian/usr/local/cuda10/bin:$PATH"
export LD_LIBRARY_PATH="/home/zhijian/usr/local/cuda10/lib64:$LD_LIBRARY_PATH"
---

# 儲存之後,使配置生效:  
source .bashrc      
  • 指令行輸入 ​

    ​nvcc -V​

    ​ 檢視cuda版本,效果如下:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130      
說明 cuda10.0此次安裝OK,已經不再使用伺服器公共的cuda了

???? 配置自己的cudnn, 這裡配置的cudnn版本為:7.6.0

​​TensorFlow1.2~2.1各GPU版本與CUDA對應版本|簡記​​

???? 1 ​​官網下載下傳​​

這個下載下傳需要郵箱注冊和登入,容易忘記密碼,就很煩有沒有。。。
給我一台新的伺服器,我會怎麼安排 CUDA

???? 2 解壓 cudnn

從Nvidia官網上下載下傳下來的cudnn for linux的檔案格式是.solitairetheme8,想要解壓的話需要先轉成tgz格式再解壓(這個操作我也被驚到了):

cp cudnn-10.0-linux-x64-v7.6.0.64.solitairetheme8 cudnn-10.0-linux-x64-v7.6.0.64.tgz

tar -zxvf cudnn-10.0-linux-x64-v7.6.0.64.tgz      

???? 3 安裝配置【替換即可】

cp cuda/include/cudnn.h /home/zhijian/usr/local/cuda10/include/

 cp cuda/lib64/libcudnn.s* /home/zhijian/usr/local/cuda10/lib64/

 chmod 755 /home/zhijian/usr/local/cuda10/include/cudnn.h

# 檢視cudnn版本 
 cat /home/zhijian/usr/local/cuda10/include/cudnn.h | grep CUDNN_MAJOR -A 2      
  • 我得到的正确輸出如下:
給我一台新的伺服器,我會怎麼安排 CUDA

???? 友情提示

  • 我上面安裝的 cuda10.0 和 cudnn 7.6.0 是因為代碼訓練TensorFlow-GPU 版本為2.0,各位需要根據自己的需求情況來安裝相應的 cuda 和 cudnn版本,版本不比對有時候會導緻很多麻煩呐...
  • TensorFlow2.0-GPU 訓練走起...
  • ???? # 一文讀懂 tensorflow-GPU 安裝、測試
---核心幹貨知識點上線---

???? 一台 Linux 伺服器, cuda9 和 cuda 10 可以共存嗎?

這樣的情況是可以共存的:

比如:已經安裝了高版本的 Cuda 和 對應高版本核心, 而 這個驅動 同時也支援 低版本的CUDA運作,這種情況通過 修改 配置 檔案的方式 ,可以 自由進行 Cuda 的切換。

但是如果系統先安裝的 cuda9 和對應驅動, 然後你想要給目前 非 Root 使用者安裝的 cuda10 ,因為 沒有 root權限, 無法 更新 驅動 ,此時 便不行。

???? 是以,給我一台新的伺服器,我會怎麼安排 Cuda?

  • Root 權限 使用者,給 伺服器安裝盡可能 高版本的 驅動 核心,例如 Cuda 11
  • 普通使用者,根據自己的項目需求,可以安裝自己的 Cuda
系統預設的Cuda 安裝位置 和 配置如下:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda      
  • 比如說我隻配置了一個 cuda , 那麼我注釋掉配置,便會使用 系統預設的Cuda;
#export PATH="/home/moli/usr/local/cuda10/bin:$PATH" 
#export LD_LIBRARY_PATH="/home/moli/usr/local/cuda10/lib64:$LD_LIBRARY_PATH"      
  • 配置檔案為,每個使用者根目錄下的 .bashrc 檔案;
# 配置操作如下:
cd ~
vim .bashrc

# 使配置生效即可
source .bashrc      

???? 平時如何進行 Cuda 的版本切換

  1. 目前而言,給自己使用者安裝一個 Cuda10.X 或者 Cuda11.X 已經基本夠用
  2. 如果遇到不同的項目确實隻能适配 不同版本的Cuda ,這時,就需要自己安裝多個 Cuda
  3. 需要掌握對 ~/.bashrc 進行 編輯,配置 不同版本 Cuda
  4. 如下所示,對于深度學習Python項目,每次切換版本,隻需要打開自己目前需要的Cuda配置即可
  5. 如果是C++項目,則在 CMakeLists.txt 中進行 Cuda配置即可
# >>> 伺服器 root 使用者 安裝的Cuda10.0
#export PATH=/usr/local/cuda-10.0/bin:$PATH
#export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
#export CUDA_HOME=/usr/local/cuda


# >>> 我自己安裝的Cuda 11 add by ml Cuda 11 path
export PATH=/home/ml/usr/mycuda/bin:$PATH
export LD_LIBRARY_PATH=/home/ml/usr/mycuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/home/ml/usr/mycuda

# 如果有必要,你還可以配置一個 Cuda9、Cuda8

...      

墨理學AI

  • 作為全網 AI 領域 幹貨最多的部落客之一,❤️ 不負光陰不負卿 ❤️
  • ❤️ 如果文章對你有幫助、點贊、評論鼓勵部落客的每一分認真創作
  • ???? # ubuntu給目前使用者安裝cuda11.2 圖文教程
  • ???? # linux和window設定 pip 鏡像源——最實用的機器學習庫下載下傳加速設定
  • ????# anaconda conda 切換為國内源 、windows 和 Linux配置方法、 添加清華源——【一文讀懂】
  • ???? # 指定GPU運作和訓練python程式 、深度學習單卡、多卡 訓練GPU設定【一文讀懂】
  • ???? # Linux下cuda10.0安裝Pytorch和Torchvision【一文讀懂】
  • ???? # 一文讀懂SSH密碼登入、公鑰認證登入
  • ???? # 一文讀懂 Centos、Ubuntu 環境 安裝JDK 11:配置JAVA_HOME環境變量

繼續閱讀