看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 矩陣運算耗費太久的時間 舉例說明: EX1: ~矩陣運算~ int A[62][62][34]; for (int i=-90;i<=90;i++){ for (int j=-90;j<=90;j++){ for (int iii=1;iii<=61;iii++){ for (int jjj=1;jjj<=61;jjj++){ for (int kkk=1;kkk<=33;kkk++){ A[iii][jjj][kkk]=(iii+jjj)/kkk }}}}} 就需要10多秒~ ====================================================================== EX2: ~矩陣累加~ int A[62][62][34]; int main(){ for (int i=-90;i<=90;i++){ for (int j=-90;j<=90;j++){ for (int iii=1;iii<=61;iii++) { for (int jjj=1;jjj<=61;jjj++) { for (int kkk=1;kkk<=33;kkk++) { A[iii][jjj][kkk]=A[iii][jjj][kkk]+(iii+jjj)/kkk; }}}}} 則需20多秒~ 是否有針對"矩陣運算" 及 "矩陣累加"進行時間改善的方法??? 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.58.91
stupid0319:多執行緒 10/05 12:37
stone0912:請問 是要用CUDA進行多執行緒?? 10/05 12:47
loveme00835:如果找到規則, 把 3 維當作 1 維來做吧, 至少在位址計 10/05 12:49
loveme00835:算上可以縮短一點時間 10/05 12:49
james732:不知道有沒有針對矩陣運算做最佳化的libaray... 10/05 12:49
purpose:CUDA 現在這麼紅喔...連這類主題都能看到討論 10/05 12:57
xatier:for裡面的計數器iii jjj kkk是哪招 XD 10/05 13:10
stilltin:找 BLAS 幫忙算呢? 10/05 14:16
seedman:如果常常要做矩陣相關運算 請裝blas或lapack 10/06 00:56
akasan:有cuda可用當然最好, blas 有 cublas 可用,cuda算矩陣超強! 10/06 09:43
stone0912:感謝 各位的回應 ~ 我已用CUDA作基本運算效果真的很好 10/07 13:52