Re: [問題] cuda C, error : unsupported operation
※ 引述《iHakka (iHakka)》之銘言:
: __global__ void kernel(float* V,float* VNew,float* rho) {
: int step = 0;
: int n = 0;
: double error =0;
: int i = blockIdx.x;
: int j = blockIdx.y;
這邊應該是用thread的x, y
你這樣寫所有的thread都會用同樣的i, j,
也就是每一個thread 都做同樣的事情
: for(int t=0;t<5000;t=t+1)
: {
: if(i > 0 && i < N-1 && j > 0 && j < N-1 )
: VNew[i+j*N]=0.25*(V[i+j*N+1]+V[i+j*N-1]+
: V[i+j*N+N]+V[i+j*N-N]+h*h*rho[i+j*N]);
: //error=err(V,VNew);
: //if (error < accuracy)
: //break;
: if(i > 0 && i < N-1 && j > 0 && j < N-1 )
: V[i+j*N]=VNew[i+j*N];
: }
這邊的 for loop 的 index 是t, 但是你裡面完全沒用到t
所以每一次loop也都做一樣的事情,
所以這個code看起來 你只會針對block的最角落的元素做 5000次一樣的運算
每一次都還同時多個thread 讀取同一個位置。
: }
--
ζ 幹 遜咖...
ξ /
-●
)>
/(
﹊﹊﹊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.58.34
推
03/27 12:40, , 1F
03/27 12:40, 1F
→
03/27 12:41, , 2F
03/27 12:41, 2F
→
03/27 12:42, , 3F
03/27 12:42, 3F
→
03/27 12:42, , 4F
03/27 12:42, 4F
→
03/27 12:44, , 5F
03/27 12:44, 5F
→
03/27 12:44, , 6F
03/27 12:44, 6F
推
03/27 12:48, , 7F
03/27 12:48, 7F
→
03/27 12:49, , 8F
03/27 12:49, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章