在CPU+GPU協(xié)同計算中,CPU和GPU的計算能力不同,靜態(tài)地給CPU和GPU劃分任務會導致CPU和GPU計算不同步,導致嚴重的負載不均衡,為了實現(xiàn)CPU和GPU的負載均衡,需要對CPU和GPU不同的劃分方法。把每個節(jié)點上的所有CPU看成一個設備,每塊GPU卡看成一個設備,對集群節(jié)點上的所有CPU設備和GPU設備分別編號,每個節(jié)點上有M塊GPU卡,N個節(jié)點上共有N個CPU設備,編號為1,2,…,N;N個節(jié)點上共有M*N個GPU設備,編號為1,2,…,M*N。
設備編號之后就可以對設備進行分組,根據(jù)算法的要求,有些任務不能細分,一個CPU設備或GPU設備上可用的內存空間可能不能滿足計算的內存要求,需要多設備數(shù)據(jù)劃分、共同計算,這時需要根據(jù)CPU內存或GPU內存進行分組
1)根據(jù)CPU內存大小和計算對內存的要求可以計算得到一組內的CPU設備數(shù)目為GC個, GC=(Mcom+MemC-1)/MemC,其中一個節(jié)點的內存大小為MemC,每個計算任務需要的內存大小為Mcom。
所有的CPU設備分為N/GC個組,每個組計算同一個任務,組內的CPU設備再進行數(shù)據(jù)劃分,數(shù)據(jù)劃分采用靜態(tài)的劃分,因為組內的CPU設備計算能力一致;
2)根據(jù)GPU內存大小和計算對內存的要求可以計算得到一組內的GPU設備數(shù)目為GG個, GG=(Mcom+MemG-1)/Mem,其中,一個GPU設備的內存大小為MemG,每個計算任務需要的內存大小為Mcom。
所有的GPU設備分為M*N/GG個組,每個組計算同一個任務,組內的GPU設備再進行數(shù)據(jù)劃分,數(shù)據(jù)劃分采用靜態(tài)劃分的方法。
CPU和GPU設備分組之后,就可以把任務動態(tài)分劃分給每個CPU組或GPU組,可以采用MPI通信進行劃分,由主進程進行動態(tài)的發(fā)送任務編號給各個CPU組或GPU組內的組長,組長再把任務編號廣播給組內的組員,然后組內的設備同時計算,計算完畢之后即可向主進程請求下一個任務,直到所有任務計算完畢為止。

-
cpu
+關注
關注
68文章
11192瀏覽量
221887 -
gpu
+關注
關注
28文章
5053瀏覽量
134036
原文標題:CPU+GPU集群計算中的一種動態(tài)負載均衡設計方法
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
WebGL/Canvas 內存泄露分析

CPU內存或GPU內存進行分組方式實戰(zhàn)
評論