網頁

2017年10月25日 星期三

20171024 GPU

1. Texture memory
    texture memory被cash on chip,比off-chip DRAM更可以減少使用記憶體需求,提供更有效bandwidth。在二維晶格,因為CPU處理周遭晶格時在記憶體無法連續情況下無法被cash together。因此,texture memory非常適合處理"between a cell and neighbors"這種需要讀取周圍記憶體位置的情況,也比前一張使用shared memory的方式來的好。
    以課本例子因為有固定熱流點dev_constSrc,所以在anim_gpu function裡先把常數的部分先copy_const_kernel寫進dev_insrc,然後再呼叫blend_kernel把dev_inSrc覆寫後算出dev_outSrc。利用一維texture<float>或二維texture<float,2>的不同處理方式下,差別在二維會自動處理邊界問題,但兩者效能其實是差不多的。

2. Graphics interoperability
    和之前章節差別在這邊使用多張顯卡讓CUDA結合OpenGL和GLUT calls,不必像前幾章利用CPU執行CPUBitmap,減少使用CPU系統。特別的是,把圖片長寬跟datablock寫到GPUAnimBitmap function引數,會透過initialize讓cudaCHooseDevice自動搜尋適合這張圖的顯卡。

沒有留言:

張貼留言