[問題] 大型矩陣相乘(CUDA)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++2010, Win7 64位元, CUDA 4.1, Tesla C2050 (Compute Capability:2.0)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
大家好!
小弟想請教一個問題:
有一個矩陣p,大小為7*65536,現在想要用CUDA來實做p乘以p的轉置矩陣,動手以後卻發
現遠比想像中的難,能請各位高手提供小弟一個方向或是具體的做法嗎?小弟感激不盡
!
之所以會覺得很難的原因,是就小弟的認知,p矩陣要切,才有辦法用CUDA做運算
,難就難在要怎麼切,以及切了以後要怎麼送進device做運算,還有做完運算以後要怎麼
組合以得到正確的答案。以上,有請各位高手指教! m(_ _)m
餵入的資料(Input):
以下的程式碼是給定p矩陣的初始值:
for(i=0;i<7;i++){
for(j=0;j<65536;j++){
if(j/2==0){
p[i][j]=1;
}
else if(j/7==0){
p[i][j]=2;
}
else
p[i][j]=0;
}
}
預期的正確結果(Expected Output):
22 22 22 22 22 22 22
22 22 22 22 22 22 22
22 22 22 22 22 22 22
22 22 22 22 22 22 22
22 22 22 22 22 22 22
22 22 22 22 22 22 22
22 22 22 22 22 22 22
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
p矩陣乘以p的轉置矩陣(未使用CUDA):
for(i=0;i<7;i++) {
for(j=0;j<7;j++){
for(k=0;k<65536;k++){
q[i][j]+=p[i][k]*p[j][k];
}
}
}
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.229.94
推
02/28 18:46, , 1F
02/28 18:46, 1F
→
02/28 18:47, , 2F
02/28 18:47, 2F
→
02/28 18:48, , 3F
02/28 18:48, 3F
→
02/28 19:07, , 4F
02/28 19:07, 4F
→
02/28 19:09, , 5F
02/28 19:09, 5F
→
02/28 19:10, , 6F
02/28 19:10, 6F
→
02/28 19:11, , 7F
02/28 19:11, 7F
→
02/28 19:14, , 8F
02/28 19:14, 8F
→
02/28 20:03, , 9F
02/28 20:03, 9F
推
02/28 20:03, , 10F
02/28 20:03, 10F
→
02/28 20:10, , 11F
02/28 20:10, 11F
→
02/28 22:02, , 12F
02/28 22:02, 12F
→
02/28 22:14, , 13F
02/28 22:14, 13F

→
02/28 22:14, , 14F
02/28 22:14, 14F

→
02/28 22:15, , 15F
02/28 22:15, 15F

→
02/28 22:15, , 16F
02/28 22:15, 16F

→
02/28 22:15, , 17F
02/28 22:15, 17F
→
02/29 11:10, , 18F
02/29 11:10, 18F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章