[問題] CUDA的加速分析

看板C_and_CPP作者 (咻咻咻)時間11年前 (2013/02/24 15:40), 編輯推噓3(309)
留言12則, 3人參與, 最新討論串1/1
看了網路上很多CUDA的範例, 有很多範例都是用了幾千個以上的THREAD然後最佳化之後得到幾十倍或頂多幾百的加速, 我知道不可能用一千條THREAD就達到一千的加速, 但是想請教一下有沒有辦法用分析的方式大概估出實作上有可能達到的最大加速? 還有一個問題,假如使用CUDA時~把資料存放在global memory 那從cuda的global memory取資料和從CPU直接從memory中取資料大概會差多少倍呢? 謝謝各位高手 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.208.92

02/24 15:56, , 1F
有呀~ 50年前就有了,去找 Parallel computing 的書
02/24 15:56, 1F

02/24 15:56, , 2F
裡面有公式,之前上課有教,不過現在忘掉了
02/24 15:56, 2F

02/24 15:57, , 3F
算法大同小異就是要加上你的 資料傳送 跟 delay 之類的時間
02/24 15:57, 3F

02/24 17:04, , 4F
好像不是50年前sorry 大約 198x年時 平行虛擬機器演算法
02/24 17:04, 4F

02/24 17:05, , 5F
的幾種經典方法都已經有了,現在的cuda比較像是窮人也可以
02/24 17:05, 5F

02/24 17:06, , 6F
很方便的做大量的平行運算 所以又紅了起來
02/24 17:06, 6F

02/24 18:16, , 7F
一個程式一定多少還是會有不能平行的部份
02/24 18:16, 7F

02/24 18:17, , 8F
能平行的部份可以把時間變少,但是剩下不能平行的比例
02/24 18:17, 8F

02/24 18:18, , 9F
就會變成程式的極限。這樣就已經可以作一些簡單估計
02/24 18:18, 9F

02/24 18:19, , 10F
先分析整個原始程式做了哪些運算、時間比、能否平行
02/24 18:19, 10F

02/24 18:21, , 11F
能平行的部份假設0耗時,可知改進極限,實際只會更差
02/24 18:21, 11F

02/24 22:36, , 12F
1.用理論CPU/GPU Gflops去'粗估',2.每張卡的spec上有
02/24 22:36, 12F
文章代碼(AID): #1HASFG1d (C_and_CPP)