1. 程式人生 > >VS2013 CUDA8.0 第一個CUDA程式

VS2013 CUDA8.0 第一個CUDA程式

今晚在看《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;
}