用于限制GPU使用的代码

时间:2011-06-10 07:55:28

标签: cuda gpu

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

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

2 个答案:

答案 0 :(得分:2)

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

如同建议的那样,弄乱网格中的线程/块或块的数量将破坏将元数据传递到内核的应用程序(不易由您的软件推断),这取决于预期的块和网格大小。

答案 1 :(得分:-1)

您可以使用CUDA查看gpu属性,并查找多处理器的数量和每个多处理器的核心数。您基本上需要做的是更改内核函数的块大小和网格大小,以便使用核心总数的一半。