- ???? 隻有實戰、不講理論、一文讀懂 ????
- ???? 聲明: 作為全網 AI 領域 幹貨最多的部落客之一,❤️ 不負光陰不負卿 ❤️

深度學習環境搭建過程中,初期階段,相信大家都會遇到,動不動 TensorFlow 或者 Pytorch 庫與Cuda、或者Cudnn 版本不比對的問題;
是以很多時候,在一台伺服器中安裝多個Cuda逐漸成為了各位搬磚大佬們的必然選擇
本文為大家揭秘一台全新伺服器、我會怎樣安排 Cuda、使得我的學習生産更為高效
???? 伺服器是團隊或者項目組的,是以cuda還是自己的好用!!!
第一部分為大家展示:Ubuntu系統 Cuda10.0 安裝過程
- 安裝系統 :Ubuntu 18.04.5
???? 1 cuda官網下載下傳位址
cat /proc/version (Linux檢視目前作業系統版本資訊)
???? 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, 後面運作程式便是可行的;
???? 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
- 指令行輸入
檢視cuda版本,效果如下:nvcc -V
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 官網下載下傳
這個下載下傳需要郵箱注冊和登入,容易忘記密碼,就很煩有沒有。。。
???? 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
- 我得到的正确輸出如下:
???? 友情提示
- 我上面安裝的 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 的版本切換
- 目前而言,給自己使用者安裝一個 Cuda10.X 或者 Cuda11.X 已經基本夠用
- 如果遇到不同的項目确實隻能适配 不同版本的Cuda ,這時,就需要自己安裝多個 Cuda
- 需要掌握對 ~/.bashrc 進行 編輯,配置 不同版本 Cuda
- 如下所示,對于深度學習Python項目,每次切換版本,隻需要打開自己目前需要的Cuda配置即可
- 如果是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環境變量