關於CUDA程式碼的問題...求救... - 顯卡

Victoria avatar
By Victoria
at 2009-09-17T22:48

Table of Contents

目標是做出N長度的數字串,亂數排序且不重複
已經有成功做出亂數表跟正常排序的數字串了

舉個例子來說,現在是希望將
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
上面這3條字串亂數排序變成
2 1 5 4 3
5 4 1 3 2
4 2 5 1 3

參考了a5000ml大大的泡泡排序寫出下面的CODE,希望做出亂數排序的效果
演算法的差別主要是在於判別swap的機率為取亂數表決定(50%機率交換)



for(int i = blockIdx.x; i < string_number; i += gridDim.x)
for(int loop=0; loop <= lenth/2; loop++)
for(int j = threadIdx.x, k = 2 * threadIdx.x; j < lenth
; j += blockDim.x){
//0 based 配對資料 (0,1) (2,3) (4,5) ....
//3維度randtable取值判別
if(randtable[loop * i * lenth + i * lenth + j] % 2 == 0)
swap(string[i * lenth + k],string[i * lenth + k + 1]);

//1 based 配對資料 (1,2) (3,4) (5,6) ....
//3維度randtable取值與判別
if(randtable[loop * i * lenth + i * lenth + j] % 2 == 0)
if(k < lenth-2) //若 N 為偶數時, 最後一個執行緒不作用
swap(string[i * lenth + k + 1],string[i * lenth + k + 2]);
}


由於都是用1維度模擬所以陣列取值裡面的數值挺長的...

現在問題是不知道為什麼執行完以後裡面的數值會出現重複的情況
例如
1 1 5 3 2

看起來應該沒有race condition的情況才對...

--
Tags: 顯卡

All Comments

主機板內建顯卡與外接顯卡之選擇

Annie avatar
By Annie
at 2009-09-17T19:09
請問各位前輩好! 我的電腦顯示卡是用N6200GT/128MB 跑and#34;魔獸世界and#34;有點頓但是本人還能接受! 最近主機板掛掉了!所以必須整套升級! 之前爬文說!現在出的主機板內建顯卡都比6200好了! 所以這是真的嗎??? 如果是真的那我用內顯玩and#34;魔獸世界and#34 ...

執行3D還是會一直重開機 快瘋了 = =

Andrew avatar
By Andrew
at 2009-09-17T18:10
我的主機板 富士康 A7GM-S 內建顯卡 ATI HD3200 放棄了 裝了一個晚上 開遊戲就會重開機 去借一張 NVIDIA 9400GT 來測試 怎麼裝 還是會重開機,用光碟的驅動裝也是 官網下載最新的也是 快瘋了 魔獸爭霸一直不能玩 好嘔喔 我有用Driver_Clean ...

顯示卡的頻寬計算

Hamiltion avatar
By Hamiltion
at 2009-09-17T16:15
像4870x2這種卡的頻寬是256bit還是256bit+256bit阿... 而4870的頻寬應該是256bit吧? 不太懂ddr5的計算方式 我剛剛看到有人講說4870的DDR5直接頻寬變兩倍??? 印象中好像ddr5的記憶體時脈換算成是ddr3要用兩倍計算 不知道我上面所敘述的有哪些是正確的 請 ...

7300GT好像掛了...

Barb Cronin avatar
By Barb Cronin
at 2009-09-17T15:30
我的電腦顯卡用Winfast 7300GT 早上開還好好 下午螢幕變成一條一條 再來連開機都不能了 囧... 應該是顯卡燒了 請問一下 同一等級之內的還有其他顯卡可以推薦的嗎? 還是說這張就不錯再買一張? 我主機是雙核 MSI的主機板 - ...

ATI的卡要送到哪修?

Liam avatar
By Liam
at 2009-09-17T15:29
爬一下文 發現說好像要送出國去修? 台北沒有分公司可以修嗎atat? 謝謝andlt;(_ _)andgt; - ...