2011-06-10 116 views
3

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

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

+0

购买更多粉丝的时间;) – basszero 2011-06-10 11:35:15

回答

-1

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

2

有没有简单的方法来做你要做的事情。 CPU使用率通过上下文切换的时间切片来控制,而GPU不具有如此细粒度的上下文切换。 GPU是协作多任务的。这就是为什么用于工作站和服务器级主板的nvidia-smi工具具有“独占”和“禁止”模式来控制给定主板上允许的GPU上下文数量的原因。如已经暗示的那样,网格中的线程/块或块的数量将会中断将元数据传递到内核的应用程序(根据您的软件不容易推断),这取决于预期的块和网格大小。