В настоящее время я пытаюсь реализовать продукт Matrices в CUDA: Первая матрица - это трехмерная матрица (N, M, Z), а вторая - 2D-матрица (M, L). Я не могу понять, что не так в моем коде для этого умножения. Может ли кто-нибудь помочь мне в этом вопросе? СпасибоУмножение 3D-матрицы в CUDA
Вот мое ядро:
__global__ void matrixMul(float * A, float * B, float * C,int N, int M, int Z, int L) {
int idx = blockIdx.x*blockDim.x + threadIdx.x;
int idy = blockIdx.y*blockDim.y + threadIdx.y;
for(int z=0; z<width; z++){
C[idx*width+idy] += A[idy + idx*width ]*B[idx*width+idy+z*width*height];
}
}
В чем же ваша проблема? И не лучше ли называть ядро 'matrixMult' вместо' matrixAdd'? – Stefan
Вы пытаетесь вычислить произведение гиперматрицы? или что-то другое? – talonmies
Здравствуйте, My isssue - это самый быстрый способ получить мои результаты. Я пытаюсь запустить параллельное вычисление этого продукта. У меня есть некоторые сомнения относительно моего индексации. Я думаю, что C (i, j, t) = sum i = 1 до n (a (r + it) * B (i, t) ... Предыдущая индексация дала некоторые странные результаты .. – ALFRAM