CPU和GPU真融合 APU異構系統架構解析
計算機從誕生之日起就配有中央處理器,即執行通用計算任務的CPU。但在過去的二、三十年中,主流的計算系統同時配置了其他計算處理單元,其中最常見的是圖形處理器(GPU)。最初,GPU應用于并行化的特殊的圖形計算。隨著時間推移,GPU的絕對計算能力越來越強,而專用芯片的特點則逐漸淡化,此消彼長的結果是,GPU可以較好的性能-功耗比完成通用并行計算的任務。
今天數量越來越多的主流應用要求兼具高性能和低功耗的素質,并行計算是達成目標的唯一途徑。但是,當前的CPU和GPU是分立設計的處理器,不能高效率地協同工作,編寫同時運行于CPU和GPU的程序也是相當麻煩。由于CPU和GPU擁有獨立的地址空間,應用程序不得不明確地控制數據在CPU和GPU之間的流動。
CPU代碼通過系統調用向GPU發送任務,此類系統調用一般由GPU驅動程序管理,而驅動程序本身又受到其他調度程序管理。這么多的環節造成了很大的調用開銷,以至于,只有在任務所需處理的數據規模足夠大,任務的并行計算量足夠大時,這樣的調用開銷才是劃算的。而其他的調用形式,比如由GPU向CPU發送任務,或者GPU向自己發送任務,在今天則根本不被支持!
為了充分釋放并行處理器的計算能力,架構設計者必須打破既有格局,采用新的思路。設計者必須重塑計算系統,把同一個平臺上分立的處理單元緊密整合成為不斷演進單顆處理器,同時無需軟件開發者的編程方式發生重大的改變,這是HSA設計中的首要目標。
為此,異構系統架構(HSA,Heterogeneous System Architecture)創造了一種更佳的處理器設計,展示了CPU和GPU被無縫集成后所帶來的益處和潛能。通過HSA,程序可以在統一的地址空間中建立數據結構,在最合適的處理器上創建任務。處理器之間的數據交互不過是傳遞一個指針。多個計算任務之間通過coherent memory,barrier,和atomic等操作來保證數據的同步(和多核CPU的方式相同)。
關注我們



