VScode配置cuda開發(fā)環(huán)境的實(shí)現(xiàn)步驟
因?yàn)檎n程學(xué)習(xí)需要,配置英偉達(dá)的cuda環(huán)境做高性能計(jì)算的測試。
1.cuda的安裝
首先要去英偉達(dá)的官網(wǎng)下載安裝cuda,安裝路徑可以自由選擇,但是為了方便操作建議直接全部默認(rèn)安裝。
可以現(xiàn)在命令行執(zhí)行nvidia-smi.exe查看目前顯卡支持的最高cuda版本,右上角的cuda version就是我們要確認(rèn)的版本,下載的cuda不應(yīng)該比這個(gè)版本新。
cuda下載入口:CUDA Toolkit 12.1 Update 1 Downloads | NVIDIA Developer
進(jìn)去后選擇對應(yīng)的平臺和版本
2.檢查環(huán)境配置
正常情況下安裝完成后是會自動配置環(huán)境變量的,但是為了保險(xiǎn)我們還是去命令行看一下
執(zhí)行nvcc -V,若可以正常顯示版本號等信息,說明正常安裝。
3.配置vscode
cuda編程用的是.cu文件,我這里為了操作簡單用了coderunner插件,配置.cu文件的編譯
點(diǎn)擊小齒輪選擇擴(kuò)展設(shè)置
我們直接在settings.json中編輯
在"code-runner.executorMap": {}中加入cu文件的編譯語句
"cu": "cd $dir; nvcc $fileName -o $fileNameWithoutExt.exe -I'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.7\\include\\CL' && $dir$fileNameWithoutExt", //請?jiān)O(shè)置和你的安裝路徑一致的地址
然后我們在.cu文件的右上角點(diǎn)擊運(yùn)行符號選擇用coderunner運(yùn)行
下面是一個(gè)測試小程序
#include <iostream> #include <math.h> __global__ void add(int n, float *x, float *y) { for (int i = 0; i < n; i++) y[i] = x[i] + y[i]; } int main(void) { int N = 1<<25; float *x, *y; cudaMallocManaged(&x, N*sizeof(float)); cudaMallocManaged(&y, N*sizeof(float)); for (int i = 0; i < N; i++) { x[i] = 1.0f; y[i] = 2.0f; } add<<<1, 1>>>(N, x, y); cudaDeviceSynchronize(); float maxError = 0.0f; for (int i = 0; i < N; i++) maxError = fmax(maxError, fabs(y[i]-3.0f)); std::cout << "Max error: " << maxError << std::endl; cudaFree(x); cudaFree(y); return 0; }
正常運(yùn)行結(jié)果如下
這里可能會返回一個(gè)錯(cuò)誤,大意是在path找不到cl.exe
如果是這個(gè)情況我們可以添加一個(gè)path系統(tǒng)環(huán)境變量
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\bin\Hostx64\x64 //注意這里要找到你電腦上的visual studio安裝路徑,找到這個(gè)文件,bin目錄下面可能有兩個(gè)文件夾,但是cuda運(yùn)行一定要選擇x64
然后重啟你的vscode,再用coderunner就能正常運(yùn)行啦
到此這篇關(guān)于VScode配置cuda開發(fā)環(huán)境的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)VScode配置cuda環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
cocos2dx實(shí)現(xiàn)橡皮擦效果以及判斷是否擦除完畢
這篇文章主要為大家詳細(xì)介紹了cocos2dx實(shí)現(xiàn)橡皮擦效果以及判斷是否擦除完畢,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12C++多字節(jié)字符與寬字節(jié)字符相互轉(zhuǎn)換
最近在C++編程中經(jīng)常遇到需要多字節(jié)字符與寬字節(jié)字符相互轉(zhuǎn)換的問題,自己寫了一個(gè)類來封裝wchar_t與char類型間的轉(zhuǎn)換2012-11-11C++實(shí)現(xiàn)LeetCode(110.平衡二叉樹)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(110.平衡二叉樹),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07