創(chuàng)新互聯(lián)專(zhuān)注于岱岳網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供岱岳營(yíng)銷(xiāo)型網(wǎng)站建設(shè),岱岳網(wǎng)站制作、岱岳網(wǎng)頁(yè)設(shè)計(jì)、岱岳網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造岱岳網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供岱岳網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
目錄
前言
一、安裝CUDA
二、安裝Pytorch
三、安裝VS2017
四、混合編譯
總結(jié)?
盡管目前的PyTorch可以直接使用GPU進(jìn)行加速,但是一些特殊的自定義算法可能依然無(wú)法直接使用GPU加速,或者PyTorch對(duì)該操作的實(shí)現(xiàn)還不夠高效。使用C++擴(kuò)展和CUDA擴(kuò)展可改善上述狀況,在Pytorch中可調(diào)用擴(kuò)展的算子測(cè)試其正確性和性能,本文僅介紹如何配置混編的環(huán)境。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
查看自己電腦顯卡信息,命令行輸入nvidia-smi
我的顯卡比較舊,最高只能支持CUDA Version:11.1
下載CUDA工具包,?CUDA Toolkit Archive | NVIDIA Developer
由于CUDA10.2支持的Pytorch版本較多,我選擇了下載這個(gè)版本
安裝NVIDIA CUDA,由于我們不是簡(jiǎn)單的使用CUDA,而是需要混編,所以保險(xiǎn)起見(jiàn)選擇自定義的模式。
配置CUDA環(huán)境變量
win10系統(tǒng)中右鍵:“我的電腦”->“屬性”,選擇"高級(jí)"中的"環(huán)境變量",開(kāi)始設(shè)置環(huán)境變量。
手動(dòng)添加以下的環(huán)境變量:
CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
CUDA_BIN_PATH=%CUDA_PAT%\bin
CUDA_LIB_PATH=%CUDA_PATH%\lib\x64
CUDA_SKD_PATH=C:\ProgramData\NVIDIA Corporation\CUDA Sample\v10.2
CUDA_SDK_BIN_PATH=%CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH=%CUDA_SDK_PATH%\common\lib\x64
Previous PyTorch Versions | PyTorch? 可以找到各個(gè)版本的Pytorch的GPU版本
分為conda的安裝方法和pip安裝方法,pip速度非常慢,推薦conda安裝。但是conda的某些較新版本顯示支持CUDA,實(shí)際上是不支持的,下載時(shí)會(huì)自動(dòng)鏈接到CPU版本,要注意仔細(xì)鑒別。
安裝完畢后進(jìn)入conda虛擬環(huán)境驗(yàn)證
如果是支持CUDA版本的Pytroch的版本號(hào)會(huì)顯示cu102類(lèi)似的字樣
三、安裝VS2017Visual Studio 較舊的下載 - 2019、2017、2015 和以前的版本
我選擇的2017版,下載VisualStudioSetup.exe
下載完畢后選擇Enterprise版本,勾選:使用C++ 的桌面開(kāi)發(fā),開(kāi)始安裝
在使用Visual Studio前,需要設(shè)置多個(gè)環(huán)境變量,而且所需的環(huán)境變量特定于安裝和選擇的生成體系結(jié)構(gòu),可能因產(chǎn)品更新或升級(jí)而更改。 考慮到環(huán)境變量的復(fù)雜性和可變性,建議不要自行在 Windows環(huán)境中設(shè)置這些變量,而是使用命令文件(.bat)或者已安裝的命令提示符快捷方式來(lái)完成配置。
方法1:.如果想要在現(xiàn)有命令提示窗口中設(shè)置生成環(huán)境,則可以使用安裝程序創(chuàng)建的命令文件之一。在 Visual Studio 2017 和 Visual Studio 2019 中,可以在 VC\Auxiliary\Build 子目錄中找到它們。
第一次打開(kāi)命令提示窗口時(shí),編譯前輸入下列命令配置環(huán)境變量:
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
方法2:MSVC 命令行工具使用?PATH
、TMP
、INCLUDE
、LIB
和?LIBPATH
環(huán)境變量,還使用特定于已安裝工具、平臺(tái)和 SDK 的其他環(huán)境變量。
我采用的方法1,方法2未嘗試過(guò)
更詳細(xì)的說(shuō)明參看通過(guò)命令行使用 Microsoft C++ 工具集 | Microsoft Learn
四、混合編譯下載代碼CudaExtension.7z,可以在資源區(qū)下載,可以在評(píng)論區(qū)留下郵箱。
激活對(duì)應(yīng)的conda 環(huán)境
步驟1:cd D:\pytorch\pytorch-master\8-1\CudaExtension?
步驟2:call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"?
步驟3:python setup.py install
完成后可利用代碼里的test.py進(jìn)行測(cè)試
五、常見(jiàn)報(bào)錯(cuò)cuda與torch版本不匹配
The detected CUDA version (10.1) mismatches the version that was used to compile
PyTorch (11.1). Please make sure to use the same CUDA versions.
C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.1/include\__config(491): fatal error C1189: #error: ?"We don't know a correct way to implement alignof(T) in C++03 outside of Clang"
error: command 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.1\\bin\\nvcc.exe' failed with exit status 2
No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1'?
VS2017環(huán)境變量配置失敗
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include\cstddef(7): fatal error C1083: 無(wú)法打開(kāi)包括文件: “stddef.h”: No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.16.27023\\bin\\Hostx64\\x64\\cl.exe' failed with exit status 2
此方法可以避開(kāi)繁瑣的VS2017界面也可以完成.cu文件和.cpp文件的混編
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧