2008年11月8日 星期六

Cuda 程式初體驗 - I

在架構好cuda平台以及開發環境之後,我們就來練習cuda的程式吧!

  1. 如果安裝好 cuda wizard for visual studio 2005 的話!你將會可以再開新專案的地方看到 CUDA WinApp的選項



     

  2. 當按下確定鍵之後!Cuda專案精靈便會引導你建立一個新的Cuda專案



     

    選擇"下一步"


     

    接下來會看到一些進階的設定,在此我們不做變更,直接選擇 "Finish"



     

  3. 建立完專案之後,你會發現方案總管理面已經有一個 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);

    
 


for(i=0;i<26;i++){

printf("%c", test_Array[i]);

}


 

    cudaFree(testPtr);

system("pause");

    return 0;

}


 

  1. 接著按下編譯並執行程式,就可以看到以下的畫面了J


    從上面的程式可以知道,這是一個從A印到Z的程式

    至於程式的內容是甚麼呢!下回再做補充:P

1 則留言:

Nowar 提到...

感謝大大無私的技術分享