在架構好cuda平台以及開發環境之後,我們就來練習cuda的程式吧!
- 如果安裝好 cuda wizard for visual studio 2005 的話!你將會可以再開新專案的地方看到 CUDA WinApp的選項
- 當按下確定鍵之後!Cuda專案精靈便會引導你建立一個新的Cuda專案
選擇"下一步"
接下來會看到一些進階的設定,在此我們不做變更,直接選擇 "Finish"
- 建立完專案之後,你會發現方案總管理面已經有一個 sample.cu的檔案,cuda的compiler吃這個檔案 :p
接著我們將sample.cu打開,其實裡面是一個cuda 專案精靈幫我們建立的一個Hello cuda程式,但是由於稍嫌複雜
所以我在這邊寫了一個程式碼稍微少一點點的程式,你可以把原本的程式碼清除並貼下以下的程式碼。
sample.cu |
#include <stdio.h> #include <stdlib.h> #include <cuda_runtime.h> #include <cutil.h>
//cuda function __global__ static void CUDAer(char* testPtr) { testPtr[threadIdx.x] = 'A' + threadIdx.x; }
int main(int argc, char* argv[]) {
char *testPtr = 0; char test_Array[26] ={0}; int i; cudaMalloc((void**) &testPtr, sizeof(char) * 26);
CUDAer<<<1,26>>>(testPtr);
cudaMemcpy(&test_Array, testPtr, sizeof(char) * 26, cudaMemcpyDeviceToHost);
printf("%c", test_Array[i]); }
cudaFree(testPtr); system("pause"); return 0; } |
- 接著按下編譯並執行程式,就可以看到以下的畫面了J
從上面的程式可以知道,這是一個從A印到Z的程式
至於程式的內容是甚麼呢!下回再做補充:P