看板 MATLAB 關於我們 聯絡資訊
我有一個程式已經用上parfor加速了 在我i7-3770 with 4-parpool的PC上面大概需要200s來完成一次計算 而我大概需要算至少7.5k次....Orz 請問在這個邏輯下還有辦法更快嗎? 我有560ti可用但我目前還沒想到適合的算法,現在搬上GPU算不划算 先感謝各位了 程式大約如下: parfor uu1=1:60 for uu2=1:60 if (uu2 == uu1) continue end for uu3=1:60 if(uu3 == uu2) continue elseif(uu3 == uu1) continue end for uu4=1:60 if(uu4 == uu3) continue elseif(uu4 == uu2) continue elseif(uu4 == uu1) continue example1 = norm(exmp(:,:,uu1)*ex(1,1,uu1)) / ... norm(examp(:,:,uu1)*ex(2,1,uu2)); example2 = norm(exmp(:,:,uu2)*ex(2,1,uu2)) / ... norm(examp(:,:,uu2)*ex(3,1,uu3)); example3 = norm(exmp(:,:,uu3)*ex(3,1,uu3)) / ... norm(examp(:,:,uu3)*ex(4,1,uu4)); example4 = norm(exmp(:,:,uu3)*ex(4,1,uu4)) / ... norm(examp(:,:,uu4)*ex(1,1,uu1)); end end end end -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.152.185 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1398176211.A.8D0.html ※ 編輯: a0683g10 (140.115.152.185), 04/22/2014 22:17:20
sunev:example1為什麼算了兩次?為什麼要算矩陣的norm? 04/22 22:28
※ 編輯: a0683g10 (140.115.152.185), 04/22/2014 23:09:10
a0683g10:抱歉因為我打錯 04/22 23:09
a0683g10:因為是一個自己寫的模擬器,目的是算MIMO效能 04/22 23:10
a0683g10:所以通道矩陣乘上預編碼矩陣後要取norm 04/22 23:12
a0683g10:問題在要找出最佳的使用者與編碼矩陣組合 04/22 23:13
a0683g10:不才只想到用四個for去搜尋,才想來問有沒有更好的解法 04/22 23:13
sunev:example1 和 example2不是可以搬出最裡面的迴圈嗎? 04/23 03:30
a0683g10:感謝sunev大的意見,在我的code裡example1、2都與 04/23 10:48
a0683g10:uu3、4有關係,因此搬不出去QQ 04/23 10:49
sunev:本來想說exmp和examp的norm單獨跑一個迴圈存起來,不過看來 04/23 14:48
sunev:比想像中的更複雜。 04/23 14:49
sunev:不然把常數提出norm好了,多少省一點時間。 04/23 14:49