[問題] 請問迴圈中的矩陣運算該如何加速?

看板AndroidDev作者 (WSzc)時間13年前 (2012/05/18 16:46), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
大家好, 不好意思有個運算速度的問題想請問大家 假設有以下的運算式 float Num[40000][40]; float temp = 0; // Num矩陣的值都先assign完成 for(int i=0;i<40000;i++) { for(int j=0;j<40;j++) { temp += Num[i][j]*Num[i][j]; } } 上面黃色那行在矩陣很大的時候會花很多時間, 但因為程式需求 必須得要開這麼大 之前在筆電上(i5雙核2.3GHz)跑 可以瞬間跑出來 以為不是個問題 沒想到在手機上(一支1GHz另一支雙核1.2GHz)卡在這行卡好幾秒 不知道有沒有比較好的寫法 可以加快速度? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.215.139

05/19 13:31, , 1F
透過java jni,讓矩陣在native code計算會比較快一些
05/19 13:31, 1F

05/19 13:33, , 2F
板本3.0以上,可以試試看用新的api renderscript,效果應該
05/19 13:33, 2F

05/19 13:33, , 3F
jni差不多
05/19 13:33, 3F

05/22 01:58, , 4F
在進第二回圈前 可以先看是不是零 或是一
05/22 01:58, 4F

05/22 12:49, , 5F
內層可以多放幾個計算式 j一次加2然後作[i][j] [i][j+1]
05/22 12:49, 5F

05/22 12:50, , 6F
或是在多一些 不過可能要測試看看
05/22 12:50, 6F
文章代碼(AID): #1FjdpaG_ (AndroidDev)