由于兼容性問題,使得我們?nèi)粝胗幂^新版本的 PyTorch,通過 GPU 方式訓(xùn)練模型,也得更換較新版本得 CUDA 工具包。然而 CUDA 的版本又與電腦顯卡的驅(qū)動(dòng)程序版本關(guān)聯(lián),如果是低版本的顯卡驅(qū)動(dòng)程序安裝 CUDA11 及以上肯定會(huì)失敗。
比如 GTX750Ti 或 GTX1050Ti,出廠的驅(qū)動(dòng)程序版本在 450 以下,也就只能裝 CUDA9 和 CUDA10 之類的版本。那么有什么方法用前面這兩種顯卡安裝 CUDA11 以上的版本呢?下面就通過更新顯卡驅(qū)動(dòng)程序來完成這一任務(wù),其中包括查看版本,各種版本的關(guān)聯(lián),如何下載安裝等白話文方式演示。
這里 強(qiáng)調(diào)一下,要安裝 CUDA 的條件是電腦有獨(dú)立顯卡,并且顯卡是英偉達(dá)也就是 N 卡。保證這一點(diǎn)我們可以通過桌面右鍵進(jìn)入 “NVIDIA 控制面板” 和 "nvidia-smi.exe" 命令的兩種方式查看顯卡的驅(qū)動(dòng)程序版本號(hào)。
NVIDIA 控制面板
點(diǎn)擊 “系統(tǒng)信息”,其中 “顯示” 下的 “項(xiàng)目” 就是顯卡型號(hào),“細(xì)節(jié)” 里主要查看 “驅(qū)動(dòng)程序版本” 和 “驅(qū)動(dòng)器類型”,后面要根據(jù)顯卡型號(hào)和驅(qū)動(dòng)器類型下載新版本的驅(qū)動(dòng)程序。也可以在 “組件” 的 “3D 設(shè)置” 下查看 “NVCUDA64.DLL”,這就是當(dāng)前驅(qū)動(dòng)支持的 CUDA 最大版本。
NVIDIA-SMI
這個(gè)英偉達(dá)顯卡在 Windows 下的一個(gè)監(jiān)控工具,通過 cmd 可以不僅可以查看當(dāng)前顯卡的基本信息,也能查看 GPU 實(shí)時(shí)的運(yùn)行情況。通過 cmd 輸入 “nvidia-smi” 查看最新信息, "nvidia-smi -l 2" 查看實(shí)時(shí)信息 (2 就是 2 秒刷新一次),工具的參數(shù)上面圖片有簡(jiǎn)單標(biāo)注。
如果 cmd 輸入后找不到該命令,需要把 “C:\Program Files\NVIDIA Corporation\NVSMI” (監(jiān)控工具默認(rèn)位置) 添加到 "path" 的環(huán)境變量中。
可以進(jìn)入**達(dá)網(wǎng)站,選擇顯卡型號(hào),特別注意 "Windows Driver Type",這個(gè)就是上面查看的 “驅(qū)動(dòng)器類型”。一般以前出廠 windows10 電腦都是 Standard,切記一定要根據(jù)驅(qū)動(dòng)器類型下載,不然后面安裝顯卡驅(qū)動(dòng)會(huì)報(bào)以下錯(cuò)誤。
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 的標(biāo)準(zhǔn)類型搜索結(jié)果看,最新的版本是 472.12,而 DCH 有 500 以上的更新的版本。如果一定要用相當(dāng)新的版本,官網(wǎng)也提供了將標(biāo)準(zhǔn)驅(qū)動(dòng)類型修改為 DCH 的,但 win 系統(tǒng)版本有一個(gè)限制,具體可以在網(wǎng)上查找這里看以后再更新說明。不過呢 472 的驅(qū)動(dòng)程序版本其實(shí)完全夠用,可以搭配最大支持 CUDA11.0 到 CUDA12.0 之間的版本,也就意味著我們可以用 1.10 上下的 pytorch 的 cu 版本,現(xiàn)在最新也才 2 點(diǎn)幾,像之前火熱的 AI 繪畫 "stable diffusion" 和 AI 音色克隆 “so-vits-svc” 就可以搭起來跑了。
已經(jīng)更新完顯卡驅(qū)動(dòng)程序后,再重復(fù)前面查看版本號(hào)方式。看到驅(qū)動(dòng)程序版本號(hào)和最大支持 CUDA 版本,記錄下來。然后進(jìn)入官網(wǎng)的 CUDA Release Notes,也可以查看到驅(qū)動(dòng)程序版本與各種 CUDA 版本的對(duì)應(yīng)關(guān)系。
上面的 “CUDA Toolkit” 下 CUDA 11.4 有五個(gè)版本,其中帶 Update 的是正式版發(fā)布后的迭代版本,依次是 11.4.1 一直到 11.4.4,最右邊就是 WIN 的最低驅(qū)動(dòng)程序版本。根據(jù)我們查詢的 472.12,當(dāng)然 Updae4 也可以,最好按他們要求選 11.4.2 或以下。然后進(jìn)入英偉達(dá)開發(fā)者網(wǎng) developer.nvidia.com/cuda-toolkit-archive,選擇后下載,以及 CUDNN 也要下載再依次安裝。(這個(gè)在前面文章有介紹此處就略過了)
前面把 CUDA 和 CUDNN 安裝配置好之后,環(huán)境變量會(huì)自動(dòng)添加,然后通過 cmd 輸入 “nvcc -V” 查看 到 CUDA 的版本表示安裝無誤,接著就是查看 CUDA 與 pytorch 對(duì)應(yīng)版本了,也可以直接下載 whl。cu 表 CUDA 版本,cpu 表 CPU 版本,由于沒有 11.4 的我們可以選擇 cu113 的搜索,然后挑選系統(tǒng)版本,Python 版本。
后面如果需要 torchaudio、torchtext 等庫,也一定要找相對(duì)應(yīng)版本的,不然不是無法用 gpu 運(yùn)行就是版本不兼容,pip 自動(dòng)把 torch 調(diào)高或調(diào)低,甚至直接改成 cpu 版,而有時(shí)候就只是一個(gè)小版本都不支持,這一點(diǎn)很惱火。
驅(qū)動(dòng)、工具包、依賴庫等一切準(zhǔn)備好后,在項(xiàng)目運(yùn)行前,可以通過以下代碼檢測(cè)一下 gpu 是否可用。其實(shí)這里想說一下,我感覺是在小模型訓(xùn)練時(shí),GPU 加速并沒有比 CPU 快多少,但是有一個(gè)好處。如果是用 CPU 做訓(xùn)練,跑起來后配置一般的電腦可能就動(dòng)不了。而如果丟給 GPU,負(fù)載就給到他了,我可以再繼續(xù)調(diào)其他代碼或放放音樂啥,只要不玩游戲或做什么 3D 預(yù)覽渲染啥的。
幾十年來,安全模式一直用于加載操作系統(tǒng),盡管功能有所減少,目的是通過僅加載操作系統(tǒng)的核心組件來排除與PC相關(guān)的問題并執(zhí)行診斷。避開某些系統(tǒng)文件的處理和設(shè)備驅(qū)動(dòng)程序的加載,以及停止特定服務(wù),提供了一個(gè)最小化的表面,使回滾可能導(dǎo)致系統(tǒng)不穩(wěn)定或以其他方式阻止計(jì)算機(jī)正確啟動(dòng)的文件變得更容易。
調(diào)用安全模式的F8方法是公認(rèn)的方法,可以追溯到Windows 95,隨著Windows 8的發(fā)布和UEFI BIOS和固態(tài)驅(qū)動(dòng)器的引入,該方法進(jìn)行了修改。但不要擔(dān)心:與大多數(shù)Windows快捷方式一樣,在Windows 10中有多種進(jìn)入安全模式的方法。
1、在桌面上,單擊“開始”按鈕>“設(shè)置”。
2、選擇更新和安全>恢復(fù)。
3、在高級(jí)啟動(dòng)下,選擇立即重新啟動(dòng)。
4、設(shè)備重新啟動(dòng)后,系統(tǒng)會(huì)提示你一系列選項(xiàng)。選擇選項(xiàng)4以引導(dǎo)進(jìn)入安全模式。如果需要訪問互聯(lián)網(wǎng),請(qǐng)選擇選項(xiàng)5以啟動(dòng)到網(wǎng)絡(luò)安全模式。
在登錄屏幕上,按住Shift鍵,然后單擊屏幕上的電源按鈕>重新啟動(dòng)。
一旦設(shè)備重新啟動(dòng),系統(tǒng)將提示你選擇一個(gè)選項(xiàng)。選擇“疑難解答”>“高級(jí)選項(xiàng)”>“啟動(dòng)設(shè)置”>“重新啟動(dòng)”。
設(shè)備將第二次重新啟動(dòng),這次將顯示選項(xiàng)列表。選擇選項(xiàng)4或5分別啟動(dòng)到安全模式或網(wǎng)絡(luò)安全模式。
在桌面上,單擊“開始”,或者只需在搜索欄中單擊即可。輸入msconfig,然后按Enter鍵啟動(dòng)系統(tǒng)配置應(yīng)用程序。
單擊引導(dǎo)選項(xiàng)卡,然后在引導(dǎo)選項(xiàng)下,選擇安全引導(dǎo)復(fù)選框>最小。
單擊“確定”,系統(tǒng)將提示你重新啟動(dòng)或退出而不重新啟動(dòng)。若要進(jìn)入安全模式,請(qǐng)單擊“重新啟動(dòng)”,Windows將重新啟動(dòng)并自動(dòng)進(jìn)入安全模式。
使用恢復(fù)驅(qū)動(dòng)器應(yīng)用程序在USB上創(chuàng)建恢復(fù)驅(qū)動(dòng)器。
重新啟動(dòng)計(jì)算機(jī),然后引導(dǎo)到恢復(fù)驅(qū)動(dòng)器。
啟動(dòng)后,系統(tǒng)會(huì)要求你根據(jù)自己喜歡的語言選擇鍵盤布局。
選擇“疑難解答”>“高級(jí)選項(xiàng)”>“啟動(dòng)設(shè)置”>“重新啟動(dòng)”。
一旦設(shè)備重新啟動(dòng),系統(tǒng)將提示你從幾個(gè)啟動(dòng)選項(xiàng)中進(jìn)行選擇。選擇選項(xiàng)4引導(dǎo)到安全模式,選擇選項(xiàng)5引導(dǎo)到網(wǎng)絡(luò)安全模式,或選擇選項(xiàng)6引導(dǎo)到命令提示安全模式。
將計(jì)算機(jī)引導(dǎo)到你選擇的安裝。在Windows安裝程序屏幕上,單擊下一步。
在以下屏幕上,單擊“修復(fù)你的計(jì)算機(jī)”以訪問選項(xiàng)屏幕。
選擇“疑難解答”>“高級(jí)選項(xiàng)”>“命令提示”。
出現(xiàn)命令行時(shí),輸入以下命令并按Enter執(zhí)行:
bcdedit /set {default} safeboot minimal
操作成功完成后,關(guān)閉命令提示符并選擇“繼續(xù)”退出并引導(dǎo)到安全模式。
如果連續(xù)三次引導(dǎo)嘗試失敗,Windows 10將在第四次嘗試時(shí)引導(dǎo)到自動(dòng)修復(fù)模式。
Windows快速診斷你的電腦后,系統(tǒng)將提示你顯示“自動(dòng)修復(fù)”屏幕。單擊高級(jí)選項(xiàng)>疑難解答>高級(jí)選項(xiàng)>啟動(dòng)設(shè)置>重新啟動(dòng)。
一旦設(shè)備重新啟動(dòng),系統(tǒng)將提示你從幾個(gè)啟動(dòng)選項(xiàng)中進(jìn)行選擇。選擇選項(xiàng)4以引導(dǎo)到安全模式,或選擇選項(xiàng)5以引導(dǎo)到網(wǎng)絡(luò)安全模式。
如果你的Windows計(jì)算機(jī)使用傳統(tǒng)BIOS和基于轉(zhuǎn)盤的硬盤驅(qū)動(dòng)器,你可以在計(jì)算機(jī)啟動(dòng)過程中使用熟悉的F8或Shift-F8鍵盤快捷鍵在Windows 10中調(diào)用安全模式。
由于UEFI BIOS的設(shè)計(jì)方式,再加上固態(tài)驅(qū)動(dòng)器固有的快速特性,Windows 10(和Windows 8)將不會(huì)對(duì)按F8或Shift-F8引起的中斷引導(dǎo)做出響應(yīng)。