0

默认情况下,内核将使用设备的所有可用 SM(如果有足够的块)。但是,现在我有 2 个流,一个计算密集型和一个内存密集型,我想分别限制用于 2 个流的最大 SM(设置最大 SM 后,一个流中的内核将使用最大 SM,比如计算密集型的 20SMs 和内存密集型的 4SMs),是否可以这样做?(如果可能,我应该使用哪个 API)

4

1 回答 1

1

简而言之,没有没有办法按照你的设想去做。

CUDA 执行模型不提供那种粒度,这不是偶然的。通过抽象出该级别的调度和工作分配,这意味着(在合理范围内)您可以在给定架构的最小 GPU 上运行的任何代码也可以在最大的 GPU 上运行而无需任何修改。从可移植性和互操作性的角度来看,这很重要。

于 2020-06-25T08:32:16.610 回答