CUDA,CC 2.0卡上的共享内存限制

CUDA,CC 2.0卡上的共享内存限制,cuda,Cuda,我知道,对于计算能力为2.0的GPU,每个多处理器的最大共享内存量是48KB,如指南中所述 对于每个块可以使用多少共享内存,我有点困惑?多处理器中有多少块。我用的是GeForce GTX 580 在费米上,您最多可以使用16kb或48kb,具体取决于您选择的每个块的共享内存配置-在多处理器上并发运行的块数取决于每个块需要多少共享内存和寄存器,最多8个。如果使用48kb,则只有单个块可以并发运行。如果每个块使用1kb,那么每个多处理器最多可以同时运行8个块,这取决于它们的寄存器使用情况。所以我假设

我知道,对于计算能力为2.0的GPU,每个多处理器的最大共享内存量是48KB,如指南中所述


对于每个块可以使用多少共享内存,我有点困惑?多处理器中有多少块。我用的是GeForce GTX 580

在费米上,您最多可以使用16kb或48kb,具体取决于您选择的每个块的共享内存配置-在多处理器上并发运行的块数取决于每个块需要多少共享内存和寄存器,最多8个。如果使用48kb,则只有单个块可以并发运行。如果每个块使用1kb,那么每个多处理器最多可以同时运行8个块,这取决于它们的寄存器使用情况。

所以我假设如果每个块使用少于48/8,速度最快?顺便说一句,我如何确定我使用的寄存器数量?使用nvcc编译器选项-Xptxas-v让编译器报告每个内核的寄存器和内存使用情况。你也可以在计算可视化分析器中运行内核-它将在占用分析选项卡中显示内核使用的共享内存和寄存器数量,由此可知,每个多处理器上并发运行了多少块。