Open wplf opened 5 months ago
在调用 matmul kernel 时, 您的代码的 grid = (256, 256, 1), block 是 ( ceil(M/256), ceil(P/256), 1 ) 这两个代码变量是不是写反了, 一般情况是 block 设置线程数, 而 grid 设置 有多少个block 数,但在您的程序中刚好相反。
/// BEGIN YOUR SOLUTION dim3 grid(BASE_THREAD_NUM, BASE_THREAD_NUM, 1); dim3 block((M + BASE_THREAD_NUM - 1) / BASE_THREAD_NUM, (P + BASE_THREAD_NUM - 1) / BASE_THREAD_NUM, 1); MatmulKernel<<<grid, block>>>(a.ptr, b.ptr, out->ptr, M, N, P);
在调用 matmul kernel 时, 您的代码的 grid = (256, 256, 1), block 是 ( ceil(M/256), ceil(P/256), 1 ) 这两个代码变量是不是写反了, 一般情况是 block 设置线程数, 而 grid 设置 有多少个block 数,但在您的程序中刚好相反。