為什么要使用共享內(nèi)存呢,因?yàn)楣蚕韮?nèi)存的訪問速度快。這是首先要明確的,下面詳細(xì)研究。

  cuda程序中的內(nèi)存使用分為主機(jī)內(nèi)存(host memory) 和 設(shè)備內(nèi)存(device memory),我們在這里關(guān)注的是設(shè)備內(nèi)存。設(shè)備內(nèi)存都位于gpu之上,前面我們看到在計(jì)算開始之前,每次我們都要在device上申請內(nèi)存空間,然后把host上的數(shù)據(jù)傳入device內(nèi)存。cudaMalloc()申請的內(nèi)存,還有在核函數(shù)中用正常方法申請的變量的內(nèi)存。這些內(nèi)存叫做全局內(nèi)存,那么還有沒有別的內(nèi)存種類呢?常用的還有共享內(nèi)存,常量內(nèi)存,紋理內(nèi)存,他們都用一些不正常的方法申請。

  他們的申請方法如下:

  共享內(nèi)存:__shared__  變量類型 變量名;

  常量內(nèi)存:__constant__ 變量類型 變量名;

  紋理內(nèi)存:texture<變量類型> 變量名;

  1.  
    存儲類型寄存器共享內(nèi)存紋理內(nèi)存

    網(wǎng)友評論