顯卡驅(qū)動(dòng)CUDA?和?pytorch?CUDA?之間的區(qū)別
寫在前面
我的 CUDA 版本是什么? 這個(gè)問題本身就是有問題的,因?yàn)闆]有搞清楚cuda的分類
- 這里的 CUDA 說的是 Driver CUDA 還是 Runtime CUDA?
- 如果是 Runtime CUDA,那系統(tǒng)可能有多個(gè),說的是哪個(gè)?用 apt-get 裝的?PyTorch 自帶的?
想知道答案的話往下看,相信看完之后應(yīng)該有所感悟
如何查看CUDA 版本
常見的查看CUDA版本的指令有如下幾個(gè)
nvidia-smi nvcc --version python -c "import torch; print(torch.version.cuda)"
nvidia-smi
nvcc --version
我先在用的是Windows電腦,這里是一張Linux 網(wǎng)圖
python -c “import torch; print(torch.version.cuda)”
為何三個(gè)指令 三種結(jié)果?
nvidia-smi
這個(gè)命令一旦裝完顯卡驅(qū)動(dòng)(nvidia-driver)就可以使用了,驅(qū)動(dòng)程序提供最底層的程序接口,直接與硬件打交道。插上顯卡的計(jì)算機(jī)也必須要裝上驅(qū)動(dòng)程序才能使用顯卡。所以 nvidia-smi 的輸出幾乎都是顯卡的硬件信息。
系統(tǒng)同一時(shí)間只能安裝一個(gè)版本的驅(qū)動(dòng)程序,如果安裝多套版本可能會(huì)導(dǎo)致未定義的錯(cuò)誤,另外驅(qū)動(dòng)程序保持最新版本即可。
那這里的 CUDA Version 是代表什么呢?其實(shí)驅(qū)動(dòng)程序也有 CUDA,叫做 Driver CUDA,這里指的是 Driver CUDA 的版本。而幾乎所有的框架程序,所使用的 CUDA 都不是 Driver CUDA,而是 NVIDIA 提供的更上層的編程接口,叫做 Runtime CUDA
nvcc 和 torch.version.cuda
首先 nvcc 是一個(gè)編譯器,這個(gè)編譯器是用戶在安裝 Runtime CUDA 的時(shí)候附帶的。因此 nvcc 打印的是 Runtime CUDA 的版本。同樣的,torch.version.cuda 打印的也是 Runtime CUDA 的版本,那這兩個(gè)版本為什么也不同呢?我們需要先了解Runtime CUDA。
Runtime CUDA
Runtime CUDA 是 NVIDIA 封裝的上層接口,幾乎所有的應(yīng)用程序,都是直接調(diào)用 Runtime CUDA 的 API,而 Runtime CUDA 內(nèi)部調(diào)用 Driver 的接口。所以通常所說的 CUDA 都是指的 Runtime CUDA(除非是驅(qū)動(dòng)開發(fā)的人員)。另外 NVIDIA 有一個(gè)規(guī)則,Runtime CUDA 的版本號(hào)必須小于等于Driver CUDA 的版本號(hào),所以 nvidia-smi
輸出的 CUDA 版本可以理解為該系統(tǒng)所能安裝的最高 CUDA 版本號(hào)是多少。
安裝方法
nvcc --version
輸出的是當(dāng)前安裝的 CUDA 的版本,而系統(tǒng)同一時(shí)間還可以安裝多套 CUDA,并且安裝的方式還多種多樣,一般來說有以下幾種安裝方式:
PyTorch 本身自帶 CUDA
# 會(huì)自動(dòng)安裝 CUDA 10.2 pip3 install torch # 會(huì)自動(dòng)安裝 CUDA 11.3 pip3 install torch --extra-index-url https://download.pytorch.org/whl/cu113 # 會(huì)自動(dòng)安裝 CUDA 11.6 pip3 install torch --extra-index-url https://download.pytorch.org/whl/cu116
有人可能會(huì)問:為什么裝了 PyTorch 之后,沒有 nvcc
這個(gè)命令,或是 nvcc --version
顯示的 CUDA 和 PyTorch 安裝的 CUDA 版本對(duì)不上?
上文說了,一個(gè)系統(tǒng)可能有多套 CUDA,如果 nvcc --version
顯示的 CUDA 對(duì)不上號(hào),是因?yàn)橄到y(tǒng)本身安裝了其他版本的 CUDA。另外,PyTorch 自帶的 CUDA 只包含庫文件,沒有 nvcc
編譯器,所以沒有 nvcc
這個(gè)命令。
通過 Ubuntu 的官方源安裝
sudo apt-get install nvidia-cuda-toolkit
通過 conda 安裝
conda search -c conda-forge cudatoolkit # 列出所有可以安裝的版本 conda install -c conda-forge cudatoolkit=xx.x.x
通過官方安裝包訪問下面的鏈接,可以下載到不同版本的安裝包:toolkits
torch官網(wǎng)有詳細(xì)的安裝cuda的步驟,自己去官網(wǎng)找一下就好了
到此這篇關(guān)于顯卡驅(qū)動(dòng)CUDA 和 pytorch CUDA 之間的區(qū)別的文章就介紹到這了,更多相關(guān)顯卡驅(qū)動(dòng)CUDA 和 pytorch CUDA內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用Python進(jìn)行時(shí)間序列數(shù)據(jù)分析與可視化的代碼示例
隨著時(shí)間序列數(shù)據(jù)在金融、氣象、生態(tài)等領(lǐng)域的廣泛應(yīng)用,利用Python進(jìn)行時(shí)間序列數(shù)據(jù)分析和可視化已成為重要的技能之一,本文將介紹如何使用Python進(jìn)行時(shí)間序列數(shù)據(jù)分析和可視化,并給出相應(yīng)的代碼示例,需要的朋友可以參考下2023-11-11Python實(shí)現(xiàn)微信高效自動(dòng)化操作
在如今數(shù)字化時(shí)代,人們對(duì)于效率的追求越來越強(qiáng)烈,而PyAutoGUI和Pyperclip作為Python中的兩個(gè)強(qiáng)大庫,為我們實(shí)現(xiàn)自動(dòng)化操作提供了便利,下面我們就來看看如何利用這兩個(gè)庫實(shí)現(xiàn)微信自動(dòng)化操作吧2023-10-10termux中matplotlib無法顯示中文問題的解決方法
這篇文章主要介紹了termux中matplotlib無法顯示中文問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01python中的selenium安裝的步驟(瀏覽器自動(dòng)化測試框架)
這篇文章主要介紹了python中的selenium安裝的步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03通過Python的jieba庫對(duì)文本進(jìn)行分詞
Python的jieba庫是一個(gè)中文分詞工具,它可以將一段中文文本分割成一個(gè)一個(gè)的詞語,方便后續(xù)的自然語言處理任務(wù),如文本分類、情感分析等,本文給大家介紹如何通過Python的jieba庫對(duì)文本進(jìn)行分詞,文中詳細(xì)的代碼示例,需要的朋友可以參考下2023-05-05解決Tensorflow使用pip安裝后沒有model目錄的問題
今天小編就為大家分享一篇解決Tensorflow使用pip安裝后沒有model目錄的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06