前言
由于兼容性問題周蹭,使得我們若想用較新版本的 PyTorch,通過 GPU 方式訓練模型,也得更換較新版本得 CUDA 工具包穆壕。然而 CUDA 的版本又與電腦顯卡的驅動程序版本關聯(lián)死陆,如果是低版本的顯卡驅動程序安裝 CUDA11 及以上肯定會失敗招拙。
比如 GTX750Ti 或 GTX1050Ti,出廠的驅動程序版本在 450 以下措译,也就只能裝 CUDA9 和 CUDA10 之類的版本别凤。那么有什么方法用前面這兩種顯卡安裝 CUDA11 以上的版本呢?下面就通過更新顯卡驅動程序來完成這一任務领虹,其中包括查看版本规哪,各種版本的關聯(lián),如何下載安裝等白話文方式演示塌衰。
查看顯卡驅動版本
這里 強調一下诉稍,要安裝 CUDA 的條件是電腦有獨立顯卡,并且顯卡是英偉達也就是 N 卡猾蒂。保證這一點我們可以通過桌面右鍵進入 “NVIDIA 控制面板” 和 "nvidia-smi.exe" 命令的兩種方式查看顯卡的驅動程序版本號均唉。
NVIDIA 控制面板
點擊 “系統(tǒng)信息”,其中 “顯示” 下的 “項目” 就是顯卡型號肚菠,“細節(jié)” 里主要查看 “驅動程序版本” 和 “驅動器類型”舔箭,后面要根據顯卡型號和驅動器類型下載新版本的驅動程序。也可以在 “組件” 的 “3D 設置” 下查看 “NVCUDA64.DLL”蚊逢,這就是當前驅動支持的 CUDA 最大版本层扶。
NVIDIA-SMI
這個英偉達顯卡在 Windows 下的一個監(jiān)控工具,通過 cmd 可以不僅可以查看當前顯卡的基本信息烙荷,也能查看 GPU 實時的運行情況镜会。通過 cmd 輸入 “nvidia-smi” 查看最新信息, "nvidia-smi -l 2" 查看實時信息 (2 就是 2 秒刷新一次)终抽,工具的參數上面圖片有簡單標注戳表。
如果 cmd 輸入后找不到該命令,需要把 “C:\Program Files\NVIDIA Corporation\NVSMI” (監(jiān)控工具默認位置) 添加到 "path" 的環(huán)境變量中昼伴。
顯卡驅動下載
可以進入達網站匾旭,選擇顯卡型號,特別注意 "Windows Driver Type"圃郊,這個就是上面查看的 “驅動器類型”价涝。一般以前出廠 windows10 電腦都是 Standard,切記一定要根據驅動器類型下載持舆,不然后面安裝顯卡驅動會報以下錯誤色瘩。
This DCH driver package is not compatible with the currently installed version of Windows.
This system is configured to require a Standard driver package. The correct driver
can be downloaded from by selecting the "Standard" option under the "Windows Driver Type" menu.
從上面 GTX 750 Ti 的標準類型搜索結果看伪窖,最新的版本是 472.12,而 DCH 有 500 以上的更新的版本居兆。如果一定要用相當新的版本覆山,官網也提供了將標準驅動類型修改為 DCH 的,但 win 系統(tǒng)版本有一個限制史辙,具體可以在網上查找這里看以后再更新說明汹买。不過呢 472 的驅動程序版本其實完全夠用,可以搭配最大支持 CUDA11.0 到 CUDA12.0 之間的版本聊倔,也就意味著我們可以用 1.10 上下的 pytorch 的 cu 版本晦毙,現在最新也才 2 點幾,像之前火熱的 AI 繪畫 "stable diffusion" 和 AI 音色克隆 “so-vits-svc” 就可以搭起來跑了耙蔑。
CUDA 下載
已經更新完顯卡驅動程序后见妒,再重復前面查看版本號方式〉槟埃看到驅動程序版本號和最大支持 CUDA 版本须揣,記錄下來。然后進入官網的 CUDA Release Notes钱豁,也可以查看到驅動程序版本與各種 CUDA 版本的對應關系耻卡。
上面的 “CUDA Toolkit” 下 CUDA 11.4 有五個版本,其中帶 Update 的是正式版發(fā)布后的迭代版本牲尺,依次是 11.4.1 一直到 11.4.4卵酪,最右邊就是 WIN 的最低驅動程序版本。根據我們查詢的 472.12谤碳,當然 Updae4 也可以溃卡,最好按他們要求選 11.4.2 或以下。然后進入達開發(fā)者網蜒简,選擇后下載瘸羡,以及 CUDNN 也要下載再依次安裝。(這個在前面文章有介紹此處就略過了)
PyTorch 版本下載
前面把 CUDA 和 CUDNN 安裝配置好之后搓茬,環(huán)境變量會自動添加犹赖,然后通過 cmd 輸入 “nvcc -V” 查看 到 CUDA 的版本表示安裝無誤,接著就是 查看 CUDA 與 pytorch 對應版本了卷仑,也可以直接下載 whl冷尉。cu 表 CUDA 版本,cpu 表 CPU 版本系枪,由于沒有 11.4 的我們可以選擇 cu113 的搜索,然后挑選系統(tǒng)版本磕谅,Python 版本私爷。
后面如果需要 torchaudio雾棺、torchtext 等庫,也一定要找相對應版本的衬浑,不然不是無法用 gpu 運行就是版本不兼容捌浩,pip 自動把 torch 調高或調低,甚至直接改成 cpu 版工秩,而有時候就只是一個小版本都不支持尸饺,這一點很惱火。
GPU 運行
驅動助币、工具包浪听、依賴庫等一切準備好后,在項目運行前眉菱,可以通過以下代碼檢測一下 gpu 是否可用迹栓。其實這里想說一下,我感覺是在小模型訓練時俭缓,GPU 加速并沒有比 CPU 快多少克伊,但是有一個好處。如果是用 CPU 做訓練华坦,跑起來后配置一般的電腦可能就動不了愿吹。而如果丟給 GPU,負載就給到他了惜姐,我可以再繼續(xù)調其他代碼或放放音樂啥犁跪,只要不玩游戲或做什么 3D 預覽渲染啥的。
import torch
print(torch.cuda.is_available())
print(torch.__version__)
exit()