走近CUDA——編寫屬于自己的第一個(gè)CUDA程序

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ī)編譯器。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容