[問題] cuda 與block 所花費時間的問題

看板C_and_CPP作者 (漢典)時間8年前 (2015/10/06 11:44), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/1
手機排版 有閱讀不便之處請見諒 問題是 利用a來做平行運算 for(n=1;n<=25;n++) a<<n*200,200>> 隨著n的變化 n=1. n=25 每執行一次a 花費時間範圍大概是從最小200~最大950毫秒 a包含的程式碼不會因為n的改變 而增加需要計算的資料, n只用來控制存放資料的位置 想問每次花費時間增加的原因? 是因為架構上的問題還是其他的? -- posted from bbs reader hybrid on my HTC_M8Sx -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.247.156 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1444103059.A.E1B.html

10/06 22:52, , 1F
你的block數超出 sm的數量,當然就要等前面作完再作
10/06 22:52, 1F

10/06 22:52, , 2F
後面,實體sm數量影響
10/06 22:52, 2F

10/06 22:55, , 3F
會需要時間分配資源
10/06 22:55, 3F

10/06 23:05, , 4F
thread變多但是計算量沒變多 那你的kernel應該有類似
10/06 23:05, 4F

10/06 23:07, , 5F
if(threadIdx.x<size) { 做計算 } 之類的構造吧
10/06 23:07, 5F

10/06 23:07, , 6F
但是光是 threadIdx.x<size 這個比較也是要花時間的
10/06 23:07, 6F

10/07 19:50, , 7F
一樓的回答 +1
10/07 19:50, 7F
文章代碼(AID): #1M4qEJuR (C_and_CPP)