PKUFlyingPig / CMU10-714

Learning material for CMU10-714: Deep Learning System
214 stars 34 forks source link

关于 hw3 中的 cuda matmul 优化, grid 与 block 是否写反? #4

Open wplf opened 5 months ago

wplf commented 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);