2011-06-10 121 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上下文數量的原因。如已經暗示的那樣,網格中的線程/塊或塊的數量將會中斷將元數據傳遞到內核的應用程序(根據您的軟件不容易推斷),這取決於預期的塊和網格大小。