VS2013 CUDA8.0 第一個CUDA程式
阿新 • • 發佈:2019-02-02
今晚在看《GPU高效能運算之CUDA》時,看到書中的例子,就想寫個CUDA程式練練手,可是之前寫的CUDA工程都是在Nsight Eclipse Edition寫的,現在想用VS寫個CUDA程式,突然不知道該怎麼下手,上網查了一些資料,整理在此,方便日後檢視,首先本文部分內容參考了部落格: vs2013下編寫你的第一個CUDA程式,作者寫的很詳細,我基本就是按照他的步驟來的。
1.上一篇部落格寫了VS13和CUDA8.0的環境配置,配置完成之後,在VS13的介面上多出一個NSIGHT的選項:
二、VS2013建立CUDA工程
1、建立一個Visual C++ 空工程
2.新增原始檔,將.cpp改為.cu
3.右鍵工程,選擇生成依賴項——>自定義:
在對話方塊中選擇CUDA 8.0,這會新增對CUDAC/C++檔案(*.cu)的支援
4.右鍵原始檔:MatAdd.cu——>屬性,開啟屬性對話方塊,在常規屬性頁下, 將項型別改為:CUDA C/C++
5.右鍵工程名MatAdd——>屬性——>配置屬性——>連結器——>輸入——>附加依賴項。新增cudart.lib
6.然後點選“常規”——>附加庫目錄,我的庫目錄為:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib
7.工具選項——>文字編輯器——>副檔名——>新增cu \cuh兩個副檔名
8..cu檔案中C/C++關鍵字高亮
讓CUDA的關鍵字,如__device__、dim3之類的文字高亮,標頭檔案中引入device_launch_parameters.h檔案
9.測試簡單程式碼
#include <iostream> #include "cuda_runtime.h" #include "device_launch_parameters.h" using namespace std; __global__ void add(int a, int b, int *c) { *c = a + b; } int main(){ int c; int *dev_c; cudaMalloc((void**)&dev_c, sizeof(int)); add << <1, 1 >> >(2, 7, dev_c); cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost); cout << "2+7=" << c << endl; cudaFree(dev_c); system("pause"); return 0; }