從應用特征來看,可以把應用分為“IO密集型”和“計算密集型”兩類,如下圖所示。IO密集型應用,通常體現為較高的輸入和輸出帶寬,數據直接來自于IO,數據通常具備流式特征,數據局部性不顯著,如果處理性能與帶寬匹配,片上緩存的作用就可以弱化。例如處理路由轉發、數據加密、壓縮等。計算密集型應用,體現為較高的計算密度,通常浮點性能突出,數據來自主存,數據局部性顯著,復用性高,主存的大小對于問題求解的性能有直接影響。例如求解線性代數方程組,大規模神經網絡訓練、推理等。
圖不同類型的處理器的特征結構
一個處理器芯片是“IO密集”還是“計算密集”只部分決定了芯片的結構特征,并不能完全定義芯片的主體架構。無論是IO密集,還是計算密集,即可以以通用CPU為核心構造主體計算架構,也可以以專用加速器為核心構造主體計算架構。前者可稱之為以控制為中心(control-centric)的模式,后者稱之為以數據為中心(data-centric)的模式。控制為中心的核心是實現“通用”,數據為中心的核心是通過定制化實現“高性能”。以應用特征和架構特征這兩個維度粗略劃分處理器芯片類型分布,如圖2-1所示。
通用CPU是偏向于控制為中心結構,理論上看就是要“圖靈完備”,要支持完備的指令集,通過編程指令序列來定義計算任務,通過執行指令序列來完成計算任務,因此具備極其靈活的編程支持,可以任意定義計算的邏輯實現“通用”——這也是CPU最大的優勢。同時,為了提高編程的開發效率,降低編譯器復雜度,緩存管理和細粒度并行度的開發通常都是由硬件來完成。類似的,還有大量的用于各種嵌入式、移動設備的微控制器MCU,并不強調高帶寬,也是以控制為中心的結構。NP,DSP也是便向于基于通用處理器來做專用化擴展,但是非常注重高通量的性能屬性。例如,NP要支持數Tbps的轉發帶寬,所以大體可以視為控制為中心、但是IO密集的處理器類型。
GPU是以數據為中心的結構,形式上更傾向于專用加速器。GPU的結構稱之為數據并行(data-parallel)結構,優化指令并行度并不是提升性能的重點,通過大規模同構核進行細粒度并行來消化大的數據帶寬才是重點。例如,最新的NVIDIA TITAN RTX GPU有4608個CUDA核、576個Tensor核,而且單片GPU通常配置數十GB的超大顯存。同時緩存管理多采用軟件顯示管理,降低硬件復雜度。這類超眾核結構是以數據為中心、執行計算密集型任務的代表性架構。
DPU也偏向于數據為中心的結構,形式上集成了更多類別的專用加速器,犧牲一定的指令靈活性以獲得更極致的性能。但是與GPU不同,DPU要應對更多的網絡IO,既包括外部以太網,也包括內部虛擬IO,所以DPU所面臨的數據并行更多可能是數據包并行,而不是圖像中的像素、像塊級并行。而且DPU也會配置少數通用核(如ARM,MIPS)來處理一定的控制面的任務,運行輕量級操作系統來管理DPU上的眾多的異構核資源,所以體現了一定“通用”性,但性能優勢主要不源于這些通用核,而是大量專用計算核。早期的一些網絡處理器采用過類似Tile64的通用眾核結構,以增加核的數量來應對多路處理的數據,實現并發處理,但單路延遲性能通常都比較差。因此,DPU更偏向于以數據為中心,執行IO密集任務。
DPU是軟件定義的技術路線下的重要產物。在軟件定義網絡中,將數據面與控制面分離是最核心的思想。DPU被定義為強化了數據面性能的專用處理器,配合控制面的CPU,可以實現性能與通用性的更佳的平衡。
來源:專用數據處理器(DPU)技術白皮書,中國科學院計算技術研究所,鄢貴海等
-
DPU
+關注
關注
0文章
368瀏覽量
24260
發布評論請先 登錄
相關推薦
評論