-2
下面是代碼:錯誤:表達式必須具有指針到的對象類型,以矩陣
__global__
void matrixSumKernelB(float **a, float **b, float **c, int n) {
// Sums each element per thread
int i = threadIdx.x + blockDim.x * blockIdx.x;
if (i < n * n) {
int l = i/n; // Line
int c = (l == 0) ? i : (n - i); // Column
a[l][c] = b[l][c] + c[l][c];
}
}
編譯器說,誤差是在該行:
a[l][c] = b[l][c] + c[l][c];
,你可以看,我試圖求和兩個矩陣(b和c)並將結果存儲在第三個矩陣(a)中,但是當我嘗試編譯時,我收到了這個惱人的錯誤。
我已經搜索了這個其他的問題,但在大部分時間裏,問題是,他們通過一維數組,並試圖訪問它們作爲一個二維數組,這不是我的情況。可能是我還沒注意到的東西,但我在這裏很難過。任何線索?
PS:這是從一個Programming Massively Parallel Processors鍛鍊,第3章
你看到什麼奇怪在這個表達式:'C [1] [C]'? – Angew
我建議你實際閱讀你的代碼。這個地方不是一個小問題,請不要把它當作一個。 – talonmies
如果您使用了描述性變量名稱而不是「帶評論的廢話」,那麼這絕不會發生。 – molbdnilo