1.首先從Hello World!開(kāi)始。
CUDA C代碼和C語(yǔ)言類似,從下面的代碼中并看不出與C語(yǔ)言有什么區(qū)別。
/*第一個(gè)程序*/
int main(){
????printf(“Hello world!\n”);
????return 0;
}
你可能認(rèn)為這就是C語(yǔ)言?。。?!我剛接觸的時(shí)候也是這樣想,不過(guò)你繼續(xù)學(xué)習(xí)下去就會(huì)發(fā)現(xiàn)其中的異同與樂(lè)趣。
2. 核函數(shù)的調(diào)用
在GPU上執(zhí)行的函數(shù)通常稱為核函數(shù)(Kernel)。
從下面代碼中發(fā)現(xiàn)其中奧妙吧。
__global__ void kernel(){
}
int main(){
kernel<<<1,1>>>();
printf(“Hello World!\n”);
return 0;
}
以上需要注意的地方有兩點(diǎn):一個(gè)空的核函數(shù)kernel(),并且?guī)в行揎椃鸰_global__,一個(gè)對(duì)該核函數(shù)的調(diào)用,并且?guī)в行揎椃?lt;<<1,1>>>。
__global__修飾符將告訴編譯器,該函數(shù)應(yīng)該編譯為在設(shè)備而不是主機(jī)上運(yùn)行。函數(shù)kernel()將被交給編譯設(shè)備代碼的編譯器,main()函數(shù)將被交給主機(jī)編譯器。