CUDA書籍(日文) - 顯卡

Table of Contents

※ [本文轉錄自 C_and_CPP 看板]

作者: RisingForce (複甦哩) 看板: C_and_CPP
標題: [情報] CUDA書籍(日文)
時間: Mon Jan 18 01:24:15 2010


http://www.kohgakusha.co.jp/books/detail/978-4-7775-1477-9

這本書不錯 講的很詳細

給的例子清楚,明了

(小弟是完全看不懂日文者,只能從example與漢字去猜其意思)


這本書的example code可在這下載

http://www.kohgakusha.co.jp/support/cuda/index.html


簡單介紹下例子:

sample 1: 用CUDA實現矩陣加法 (蠻樣板的 沒什麼好看)

sample 2: 古典粒子括散問題,粒子的速度場只與其座標有關 (v(x,y))
(有一階與三階計算兩個function包在其中)

sample 3: 同sample 2,但不同的potential.

sample 4: 2D(溫度)括散問題,沒有任何優化過的CUDA平行算法。

sample 5: 同sample 4,但使用到shared memory 這技巧。

sample 6: 同 sample 5,討論到shared memory不夠時(>16kb),該如何應變。

sample 7: 同 sample 6,討論如何(在同一個block)直接轉換變數,讓程式

近一步加快(高端技巧,在下看不太懂)。


基本上 sample 5 6 7 8是完全一樣(function全都存在,就叫cuda_diffusion2d_0

cuda_diffusion2d_1 ..etc),只是真的被呼叫者不同

(blockDim_x 與blockDim_y 不太一樣)。


這幾個code讓我最感到amazing的,是輸出結果並不是txt需另找別的

軟體繪圖,而是輸出直接就是圖檔。

(作者自己寫了bmp_r8 與 DFR8bmp這兩個function,讓輸出結果就是bmp檔)


光是直接繪成圖這點就非常值得去下載他的code。(用了<limit.h>這 header,
在下搞不清處這是什麼)


在此提供給CUDA的初學者參考。











--

All Comments

Ida avatarIda2010-01-21
最近正在研究,想知道他有什麼技巧,謝謝分享。
Andy avatarAndy2010-01-22
sample6看起來是為了減少當處理左右boundary而造成的
Charlotte avatarCharlotte2010-01-24
non-coalescing的memory access。原本每個block是16*16,
Isabella avatarIsabella2010-01-25
後來改成256*1,則non-coalescing的次數就會由16*2次變成
Rosalind avatarRosalind2010-01-28
1*2次,而且這個程式預設的NX是256,所以連1次都沒有
Charlotte avatarCharlotte2010-01-31
而且sample6使用的shared memory是sample5的近3倍的量。