作者RisingForce (複甦哩)
看板VideoCard
標題[情報] CUDA書籍(日文)
時間Mon Jan 18 01:28:15 2010
※ [本文轉錄自 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的初學者參考。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.206.101
※ 編輯: RisingForce 來自: 219.70.206.101 (01/18 01:25)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.206.101
1F:推 kkmoney3:最近正在研究,想知道他有什麼技巧,謝謝分享。 01/21 14:32
2F:→ kkmoney3:sample6看起來是為了減少當處理左右boundary而造成的 01/26 13:41
3F:→ kkmoney3:non-coalescing的memory access。原本每個block是16*16, 01/26 13:43
4F:→ kkmoney3:後來改成256*1,則non-coalescing的次數就會由16*2次變成 01/26 13:44
5F:→ kkmoney3:1*2次,而且這個程式預設的NX是256,所以連1次都沒有 01/26 13:45
6F:→ kkmoney3:而且sample6使用的shared memory是sample5的近3倍的量。 01/26 14:07