是否可以在CUDA代码中设置命令/功能/变量来限制GPU使用率?我想修改一个名为Flam4CUDA的开源项目,以便该选项存在。按照现在的方式,它会尽可能多地使用所有存在的GPU,其结果是温度急剧上升(显然)。为了在长时间的计算过程中降低温度,我希望能够告诉程序使用每个GPU的50%(甚至对于不同的GPU使用不同的百分比,或者也许还可以选择要使用的GPU)。有任何想法吗?

如果您想查看代码,可以通过“svn co https://flam4.svn.sourceforge.net/svnroot/flam4 flam4”获得。

最佳答案

没有简单的方法可以完成您要执行的操作。 CPU使用率是通过上下文切换的时间片控制的,而GPU没有这种细粒度的上下文切换。 GPU是协作式多任务的。这就是为什么用于工作站和服务器级主板的nvidia-smi工具具有“独占”和“禁止”模式来控制给定主板上允许的GPU上下文数量的原因。

如建议的那样,处理网格中一个或多个线程/块的数目将破坏依赖于期望的块和网格大小将元数据传递到内核的应用程序(不容易由您的软件推断)。

09-04 10:19
查看更多