CUDA - 如果我选择太多块怎么办?

Mar*_* A. 9 c++ cuda matrix

我仍然对这些未知大小的矩阵感到生气,这些矩阵的每个维度可能在10-20.000之间变化.

我正在看CUDA sdk并想知道:如果我选择的块数太高会怎么样?

像X和Y尺寸的9999 x 9999块网格,如果我的硬件有SM不能容纳所有这些块,那么内核会出现问题还是性能会崩溃?

我不知道如何在块/线程中维度可能变化很大的东西.我正在考虑使用我的硬件支持的最大块数,然后使其中的线程在所有矩阵中工作,这是正确的方法?

Nul*_*Set 13

线程块与核心没有一对一的映射.块在可用时被调度到核心,这意味着您可以根据需要请求多个(可能达到限制).请求大量的块只会降低系统速度,因为它会加载和卸载无内核线程块到内核.

您可以在运行时指定网格和块的尺寸.

编辑:以下是文档中网格和块的尺寸限制.

在此输入图像描述