在CPU+GPU協同計算中,CPU和GPU的計算能力不同,靜態地給CPU和GPU劃分任務會導致CPU和GPU計算不同步,導致嚴重的負載不均衡,為了實現CPU和GPU的負載均衡,需要對CPU和GPU不同的劃分方法。把每個節點上的所有CPU看成一個設備,每塊GPU卡看成一個設備,對集群節點上的所有CPU設備和GPU設備分別編號,每個節點上有M塊GPU卡,N個節點上共有N個CPU設備,編號為1,2,…,N;N個節點上共有M*N個GPU設備,編號為1,2,…,M*N。
設備編號之后就可以對設備進行分組,根據算法的要求,有些任務不能細分,一個CPU設備或GPU設備上可用的內存空間可能不能滿足計算的內存要求,需要多設備數據劃分、共同計算,這時需要根據CPU內存或GPU內存進行分組
1)根據CPU內存大小和計算對內存的要求可以計算得到一組內的CPU設備數目為GC個, GC=(Mcom+MemC-1)/MemC,其中一個節點的內存大小為MemC,每個計算任務需要的內存大小為Mcom。
所有的CPU設備分為N/GC個組,每個組計算同一個任務,組內的CPU設備再進行數據劃分,數據劃分采用靜態的劃分,因為組內的CPU設備計算能力一致;
2)根據GPU內存大小和計算對內存的要求可以計算得到一組內的GPU設備數目為GG個, GG=(Mcom+MemG-1)/Mem,其中,一個GPU設備的內存大小為MemG,每個計算任務需要的內存大小為Mcom。
所有的GPU設備分為M*N/GG個組,每個組計算同一個任務,組內的GPU設備再進行數據劃分,數據劃分采用靜態劃分的方法。
CPU和GPU設備分組之后,就可以把任務動態分劃分給每個CPU組或GPU組,可以采用MPI通信進行劃分,由主進程進行動態的發送任務編號給各個CPU組或GPU組內的組長,組長再把任務編號廣播給組內的組員,然后組內的設備同時計算,計算完畢之后即可向主進程請求下一個任務,直到所有任務計算完畢為止。
-
cpu
+關注
關注
68文章
11044瀏覽量
216072 -
gpu
+關注
關注
28文章
4913瀏覽量
130694
原文標題:CPU+GPU集群計算中的一種動態負載均衡設計方法
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
虛擬內存不足如何解決 虛擬內存和物理內存的區別
如何檢測DDR內存性能
DDR內存頻率對性能的影響
RAM內存不足的表現及解決方法
RAM內存頻率對性能的影響
北橋芯片負責與cpu的聯系并控制內存嗎
Windows管理內存的三種主要方式
前端總線與內存頻率怎么配
反射內存卡與普通內存卡的區別

評論