小弟是個CUDA新手
這學期因為修了門課 要做用CUDA加速應用
但有幾個問題想弄清楚 希望板上高手回答..
我們老師要我們嘗試至少四種方法來切割資料 並比較優劣
看到這邊我第一個想到: 程式碼與資料的重新排列 以減少Cache失誤率
不過對於GPU而言 有所謂的Cache嗎? (我想應該會有吧= ="")
另外我們在做lab時 曾經做過的是: 改變每個Thread所要抓的記憶體位置
來讓各個Thread是搶不同的block.. 紓解記憶體頻寬需求來加速
(不知以上我的理解有沒有錯 有錯懇請指正= ="" 小弟很新)
所以他是先從Host抓資料到GPU上 在讓每個Thread執行
還是執行時才從Host抓資料呢???
那我在做資料分割來加速時 我要考慮的到底是
A. 記憶體頻寬
B. Cache失誤
感覺我問的不太清楚= =""
我的目標是改寫程式讓他抓的記憶體區塊 盡量做最大的利用呢
還是讓每個Thread作用在不同區塊的記憶體上面呢?
--
All Comments