Cuda 限制GPU使用的代码

Cuda 限制GPU使用的代码,cuda,gpu,Cuda,Gpu,是否有一个命令/函数/变量可以在CUDA代码中设置,以限制GPU的使用百分比?我想修改一个名为Flam4CUDA的开源项目,以便该选项存在。按照现在的方式,它使用尽可能多的所有GPU,其效果是温度急剧上升(显然)。为了在长时间的计算过程中保持低速度,我希望能够告诉程序使用,比如说,每个GPU的50%(或者对于不同的GPU有不同的百分比,或者也可以选择使用哪个GPU)。有什么想法吗 如果您想查看代码,可以在“svn co flam4”中找到它。您可以使用CUDA查看gpu属性,并找到多处理器的数量

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


如果您想查看代码,可以在“svn co flam4”中找到它。

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

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


如前所述,在网格中弄乱一个或多个线程/块的数量将破坏正在向内核传递元数据的应用程序(您的软件不容易推断),这取决于预期的块和网格大小。

是时候购买更多的风扇了;)