[問題] 請問CUDA能否做linked list
隨便舉個應用例好了:
有M*N寬度的matrix (M,N都很大)
把上面的點與周圍數字做比較,若超過某個比例就把這點的做標還有值,存起來
for(i = 0; i<M;i++){
for(j = 0; j<N ;j++){
/*參數規零*/
for(ii = n; ii<= s; ii++ ){
for(jj = w ; jj<= e; jj++ ){
/*一些疊加的算法*/
}/*for jj*/
}/*for ii*/
/*一些比較的算法*/
/*若過關就計下這點的座標還有值*/
}/*for j*/
}/*for i*/
外面的 i, j loop非常適合用CUDA(或ATI的STREAM,或更廣義的OPENCL )平行之
而儲存結果最好的做法是用linked list (幾個點會過關事先不知道
,且點的次序不重要,只要知道那些點過關)
但貌似CUDA的device不能主動開(顯存)memory?
那請問版上大牛是怎處理這種問題的呢?
(直接開個bool或int array去把那些過關那些不過關,
強行存起來。。真的很蠢。。)
有無聰明點的做法呢,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.206.101
※ 編輯: RisingForce 來自: 219.70.206.101 (01/19 01:13)
推
01/19 06:22, , 1F
01/19 06:22, 1F
推
01/19 15:05, , 2F
01/19 15:05, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章