作者WSzc (WSzc)
看板AndroidDev
標題[問題] 請問迴圈中的矩陣運算該如何加速?
時間Sat May 19 00:46:25 2012
大家好,
不好意思有個運算速度的問題想請問大家
假設有以下的運算式
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
1F:推 bukiya:透過java jni,讓矩陣在native code計算會比較快一些 05/19 13:31
2F:→ bukiya:板本3.0以上,可以試試看用新的api renderscript,效果應該 05/19 13:33
3F:→ bukiya:jni差不多 05/19 13:33
4F:推 exoduschi:在進第二回圈前 可以先看是不是零 或是一 05/22 01:58
5F:→ fjm31714:內層可以多放幾個計算式 j一次加2然後作[i][j] [i][j+1] 05/22 12:49
6F:→ fjm31714:或是在多一些 不過可能要測試看看 05/22 12:50