一、引言
隨著人工智能技術的飛速發展,對神經網絡處理單元(NPU)的性能要求越來越高。多核NPU微架構應運而生,它通過集成多個處理核心,能夠顯著提升并行計算能力,滿足大規模神經網絡計算的需求。
![]()
二、多核NPU微架構的基本組成
計算單元。多核NPU的核心是大量的并行計算單元,這些單元通常被設計為向量處理器或矩陣處理器。例如,DianNao架構中,NFU(Neural Functional Units)分為乘法單元、加法樹和激活單元。其中乘法單元包含256個乘法器,能夠在每個時鐘周期同時執行256個乘法操作。這些計算單元能夠高效地執行大規模矩陣運算,從而加速神經網絡的訓練和推理過程。
![]()
數據流架構。NPU采用數據流驅動的架構,數據在處理單元之間直接傳遞,減少了數據傳輸的延遲和功耗。這種架構允許NPU并行處理大量數據,非常適合神經網絡中的矩陣運算。在多核NPU中,數據流的優化尤為重要,因為多個核心需要高效地共享和傳遞數據,以避免數據瓶頸。
內存層次結構。NPU通常配備優化的內存層次結構,包括高速緩存和片上存儲器。例如,Qualcomm NPU設計了TCM高速緩存器,提供低延遲和高帶寬的內存訪問性能。在多核NPU中,內存層次結構的設計需要考慮到多個核心對內存的并發訪問需求,以減少內存沖突和提高內存利用率。
互聯結構。多核NPU需要高效的互聯結構來實現核心之間的通信。常見的互聯結構包括總線、交叉開關(crossbar)和片上網絡(NoC)。總線結構簡單,但容易成為性能瓶頸;交叉開關可以提供更高的帶寬和更低的延遲,但硬件成本較高。片上網絡則是一種可擴展性較好的互聯結構,它通過網絡接口和路由器來實現核心之間的數據傳輸。在多核NPU中,選擇合適的互聯結構對于提高系統的整體性能至關重要。
三、多核NPU微架構的并行計算設計
指令級并行(ILP)。NPU通過VLIW(Very Long Instruction Word)指令并行架構實現指令級并行。編譯器將多條無依賴關系的指令組合成一個指令包,然后同時發送給多個獨立的功能部件進行并行執行。這種設計可以充分利用硬件資源,提高指令的執行效率。
數據級并行(DLP)。NPU的并行計算單元能夠同時處理多個數據點。例如,在矩陣乘法操作中,多個并行單元可以同時計算矩陣的不同部分。在多核NPU中,數據級并行可以通過多個核心同時處理不同的數據塊來實現,從而進一步提高系統的吞吐量。
線程級并行(TLP)。NPU支持多線程編程模型,可以同時處理多個程序或程序中的多個部分。在多核NPU中,線程級并行可以通過多個核心同時執行不同的線程來實現。這種設計可以充分利用多核的優勢,提高系統的并發處理能力。
四、多核NPU微架構的優化技術
存算一體技術:存算一體技術是將部分計算任務直接在存儲器中完成,而非傳統架構中“內存-緩存-計算單元”頻繁搬運數據的模式。這種技術可以大幅減少數據遷移帶來的功耗和延遲,從而提高系統的能效。在多核NPU中,存算一體技術可以與多核架構相結合,進一步優化性能。
彈性負載均衡:對NPU微架構中的存儲與計算PE而言,可配置意味著可以通過片上的控制邏輯來動態配置細顆粒度的PE陣列。通過Array+Vector異構組合的SHAV彈性架構,可以適應算法中多形態的算子尺寸和數據流變化需求。對NPU頂層架構而言,微任務與多并行調度意味著多核的SHAV計算模塊可以通過高帶寬的分布式數據總線來搭建實現多核的彈性擴展。
聯合優化設計:NPU中模型-硬件聯合設計的實現策略體現在降低計算資源需求的策略。例如,3x3卷積Conv可以通過面向通道的Conv3x3 +Conv1x1來實現,Conv5x5以上可以通過Conv3x3 +Conv1x1組合來實現。這種聯合優化設計可以提高硬件資源的利用率,提升能耗比和算力效率。
五、多核NPU微架構的挑戰與應對
挑戰。功耗問題:多核NPU在提升性能的同時,也面臨著功耗增加的挑戰。如何在有限的功耗預算內實現高性能計算是一個關鍵問題。散熱問題:高功耗會導致芯片發熱增加。散熱問題不僅影響芯片的性能和可靠性,還可能導致設備失效。編程復雜度:多核NPU的并行計算架構增加了編程的復雜度。開發者需要了解硬件架構的細節,并編寫高效的并行程序,以充分利用多核的優勢。
應對措施。低功耗設計技術:采用低功耗設計技術,如動態電壓頻率調整(DVFS)、功率門控等,可以在保證性能的前提下降低功耗。散熱解決方案:通過優化芯片布局、采用先進的散熱材料和散熱技術,可以有效解決散熱問題。軟件工具支持:提供高效的編譯器、調試工具和性能分析工具,可以幫助開發者更好地理解和優化并行程序。此外,還可以通過硬件抽象層(HAL)等技術,降低編程復雜度。
六、多核NPU微架構的應用實例
(一)天璣9500
天璣9500的NPU革新采用了多核異構或脈動陣列設計。這種設計不僅增強了并行計算能力,還優化了數據流路徑,降低了延遲。在運行大參數AI模型時,天璣9500能夠保持高能效。此外,天璣9500還引入了“存算一體”技術,進一步提高了芯片的能效。
(二)華為昇騰
華為昇騰采用SPMD(Single Program Multiple Data)編程模型,通過多核架構技術,提供千百級的加速器物理核。這種設計適合大算力下高并行數據負載,能夠實現高效的并行計算。
(三)ONNXim模擬器
ONNXim是一款針對推理導向的多核神經處理單元(NPU)的周期級模擬器。它能夠運行大型深度神經網絡(DNN)推理任務,同時準確地模擬共享資源(例如DRAM)的競爭情況。ONNXim支持多種調度策略,可以輕松擴展以支持其他策略。通過使用ONNXim,研究人員可以更好地理解和優化多核NPU的性能。
七、結論
多核NPU微架構通過集成多個處理核心,能夠顯著提升并行計算能力,滿足大規模神經網絡計算的需求。在設計多核NPU微架構時,需要綜合考慮計算單元、數據流架構、內存層次結構和互聯結構等多個方面。同時,還需要采用優化技術,如存算一體技術、彈性負載均衡和聯合優化設計,以進一步提高系統的性能和能效。盡管多核NPU微架構面臨著功耗、散熱和編程復雜度等挑戰,但通過低功耗設計技術、散熱解決方案和軟件工具支持等應對措施,可以有效地解決這些問題。
邀請函
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.