深度學習CUDA配置指南

2021-09-23 22:12:56 字數 2640 閱讀 4872

要使用cuda,必須要有nvidia顯示卡,可以使用lspci命令來檢視:

$ lspci |

grep nvidia

02:00.0 vga compatible controller: nvidia corporation device 1b06 (rev a1)

02:00.1 audio device: nvidia corporation device 10ef (rev a1)

03:00.0 vga compatible controller: nvidia corporation device 1b06 (rev a1)

03:00.1 audio device: nvidia corporation device 10ef (rev a1

例如,上面顯示顯示卡是nvidia的,1b06是deviceid,是廠商給自己某個型號的產品分配的id。那麼,如何通過deviceid來查詢產品型號呢?網上有一些deviceid的資料庫,例如:envytools。在此頁面可查得1b06的產品型號為geforce gtx 1080 ti。

以ubuntu為例,可以使用命令ubuntu-drivers list來檢視合適的顯示卡驅動,安裝較新的驅動即可:

$ ubuntu-drivers list

nvidia-390

nvidia-384

nvidia-387

nvidia-396

nvidia-410

$ sudo

apt update

$ sudo

aptinstall nvidia-410

對於deb格式,使用如下命令進行安裝:

$ sudo dpkg -i ***.deb
對於run格式,需要遮蔽ubuntu自帶的開源顯示卡驅動nouveau,關閉x環境(不帶圖形介面,僅有字元介面),然後安裝。由於這種安裝方式較為繁瑣,且容易出錯,因此盡量採用前面的安裝方式。詳細安裝方法見「安裝cuda」一節的「官方安裝指南」。

選擇合適的作業系統,安裝類別推薦network,不推薦runfile

然後按照installation instructions安裝即可。

需要注意的是,最後一步

$ sudo

aptinstall cuda

會安裝最新版本的cuda,且有新版本時可公升級到最新。如果想裝某個版本的cuda,可以指定版本,並且會保持該版本,除非後續又安裝了其它版本。例如指定版本cuda 9.0:

$ sudo

aptinstall cuda-9-0

然後設定pathld_library_path

export path=

$path:/usr/local/cuda/bin

export ld_library_path=/usr/local/cuda/lib64:/usr/local/cuda/extras/cupti/lib64:$ld_library_path

可以寫入到/etc/profile.d/cuda-env.sh,然後執行source使之生效:

$ source /etc/profile.d/cuda-env.sh
官方安裝指南可以參考:

官方安裝指南

installation guide linux :: cuda toolkit documentation

以ubuntu為例,推薦使用deb格式的安裝檔案。

手動安裝需注意:cudnn包含cudnn的庫和標頭檔案,需要確保庫位於預設位置或ld_library_path,否則需要將cudnn的庫所在路徑加入ld_library_path

說明

除了設定ld_library_path,也可以使用ldconfig來管理動態鏈結庫的路徑。

tensorrt官方安裝指南: tensorrt installation guide :: deep learning sdk documentation

安裝比較簡單,在此不贅述。

說明

需要注意本地repo的概念,安裝了本地repo實際上並沒有安裝該repo裡的包,需要先進行apt update,然後仍然需要使用apt install進行安裝。

深度學習學習指南

什麼是深度學習?總的來說,深度學習包括建立和訓練乙個大型的人工神經網路,該神經網路在輸入和輸出之間具有許多隱藏層。正是因為這些隱藏層,我們才稱呼這些神經網路為 深度 至少具有三層隱藏層才能叫深度神經網路,但現有的一些神經網路已具有上百層。神經網路是乙個複雜的統計模型,它通過計算機來對資訊進行乙個非常...

CUDA實踐指南(十六)

共享記憶體啟用塊中線程之間的協作。當乙個塊中的多個執行緒使用全域性記憶體中的相同資料時,共享記憶體只能用於從全域性記憶體訪問一次資料。共享記憶體還可以用來避免未合併的記憶體訪問,方法是從全域性記憶體中載入和儲存合併模式的資料,然後將其重新排列在共享記憶體中。除了儲存體衝突之外,共享記憶體中的變形對非...

CUDA實踐指南(十三)

裝置記憶體空間 cuda裝置使用多個記憶體空間,這些記憶體空間具有不同的特性,這些特性反映了它們在cuda應用程式中的不同用法 這些記憶體空間包括全域性,本地,共享,紋理和暫存器,如圖2所示 合併的訪問要求取決於裝置的計算能力,可以查閱cuda c程式設計指南中。在這些不同的記憶空間中,全域性記憶是...