[問題] 矩陣運算

看板C_and_CPP作者 (開心石)時間13年前 (2010/10/05 12:31), 編輯推噓4(407)
留言11則, 9人參與, 最新討論串1/4 (看更多)
遇到的問題: (題意請描述清楚) 矩陣運算耗費太久的時間 舉例說明: 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

10/05 12:37, , 1F
多執行緒
10/05 12:37, 1F

10/05 12:47, , 2F
請問 是要用CUDA進行多執行緒??
10/05 12:47, 2F

10/05 12:49, , 3F
如果找到規則, 把 3 維當作 1 維來做吧, 至少在位址計
10/05 12:49, 3F

10/05 12:49, , 4F
算上可以縮短一點時間
10/05 12:49, 4F

10/05 12:49, , 5F
不知道有沒有針對矩陣運算做最佳化的libaray...
10/05 12:49, 5F

10/05 12:57, , 6F
CUDA 現在這麼紅喔...連這類主題都能看到討論
10/05 12:57, 6F

10/05 13:10, , 7F
for裡面的計數器iii jjj kkk是哪招 XD
10/05 13:10, 7F

10/05 14:16, , 8F
找 BLAS 幫忙算呢?
10/05 14:16, 8F

10/06 00:56, , 9F
如果常常要做矩陣相關運算 請裝blas或lapack
10/06 00:56, 9F

10/06 09:43, , 10F
有cuda可用當然最好, blas 有 cublas 可用,cuda算矩陣超強!
10/06 09:43, 10F

10/07 13:52, , 11F
感謝 各位的回應 ~ 我已用CUDA作基本運算效果真的很好
10/07 13:52, 11F
文章代碼(AID): #1CggezPw (C_and_CPP)
文章代碼(AID): #1CggezPw (C_and_CPP)