傳統數字信號處理器?(DSP)?的架構在特定的信號處理計算應用中已經顯得捉襟見肘。而超長指令字?(VLIW)?和單指令/多數據?(SIMD)?架構的組合卻可提供高計算性能所需的并行吞吐量,其數據通常為16、24 和 32 位字寬。這非常適合語音/音頻和通信等應用中使用的算法。在前幾代 DSP 算法開發中,系統和軟件開發人員會在 MathWorksMATLAB??中開發系統算法,隨后再將算法移至 DSP,在轉移時,會將 MATLAB 的浮點數據類型輸出轉換為定點類型輸出。 DSP開發者通過定點數據來滿足循環和準確方面計算的需求,同時使硬件的使用和功耗降至最低水平。
利用浮點實現更高吞吐量
由于上市時間的需要,新的算法和計算利用自定義軟件算法以及新產品更激進的上市時間窗口來區分產品。當前系統可能跳過從浮點到定點的轉換步驟,而只保留在 DSP 上運行浮點。汽車 ADAS 和 RADAR/LiDAR 等較新應用要求在計算路徑的所有部分中都具有高精度的需求。在前端 FFT 計算中,較大的點 FFT(例如 4K、8K 和更高的點 FFT)無法在定點(溢出)保持位精度。因此,為了獲得最高性能則需要配合單精度或半精度浮點數據類型。
在各種汽車應用中,尤其是 ADAS、動力總成和馬達控制/管理中,用于更快/更流暢的系統響應的預測建模正變得越來越普遍。預測建模使用能夠基于各種輸入來預測結果的統計模型。這種實現方式的好處在于DSP 處理器可以運行高度復雜的模型,并且可以響應更廣范圍的傳感器和環境輸入并更快地生成輸出。機器學習算法對于匹配預測模型的狀態也很有幫助,該算法可以幫助學習預期的結果并進一步改善響應時間和輸出質量。預測建模最好在基于線性代數的算法中使用單精度浮點來實現,以確定計算數據的范圍和準確性。同時,可以將數學計算歸類為線性代數運算在 DSP 處理器上進行大量計算。
具有高性能處理的應用 - (例如每秒 10 吉比特數據速率的 5G 無線通信,以及每秒需要 200 吉比特以上數據吞吐量的汽車 ADAS、RADAR 和 LiDAR)都需要具有非常寬的向量計算能力,以及具備高度并行執行能力的 DSP。這些新的 DSP 計算驅動因素改變了傳統 DSP 內核的架構和指令集架構 (ISA) 要求。DSP 需要極高水平的計算吞吐量,并需同時具有高水平的單精度和半精度浮點計算。傳統 DSP 處理器重點執行定點數據類型處理,而增加的浮點單元在處理能力和功耗方面并非是最佳選擇。傳統的 DSP 處理器對線性代數的指令支持有限,對于矩陣轉置運算, 雖然提供 SQRT 和/或 1/SQRT 支持,但對于線性代數算法的完整范圍則必須對數學運算進行軟件仿真。
面向數據主導型世界的新一代DSP架構
新一代的 DSP 內核能滿足浮點和線性代數數據吞吐量的計算要求。該DSP 是 DesignWare? ARC? VPX5 處理器 IP方案會在其中作為本機架構的一部分來開發浮點和線性代數向量計算,并通過向量 SIMD 和 VLIW 架構有效實現超高水平的并行處理。DesignWare ARC VPX5 處理器 IP ?具有四個并行執行維度(圖 1)。
圖 1:在 DesignWare ARC VPX5 處理器 IP 上并行執行的 4 個維度
第 1?維度:浮點的多 SIMD 計算引擎
基本向量數據長度為 512 位,從而可以對 8 位、16 位和 32 位數據,或半精度和單精度浮點數據的數據單元進行 SIMD 計算。所有 SIMD 引擎都使用 512 位向量長度進行計算;這就確定了 ARC VPX5 處理器的計算能力上限。
對于 8 位、16 位和 32 位長度的整數數據,有兩個 512 位 SIMD 計算引擎以及三個 ALU 處理單元。這為機器學習卷積運算(5x5、3x3 和 1x1)等算法提供了非常高的計算水平。
對于半精度和單精度浮點計算,有三個向量 SIMD 計算引擎,所有引擎都支持 512 位的最大向量長度。用于“常規”浮點向量運算的雙 SIMD 引擎,為包括FFT的DSP函數和矩陣運算等在內的浮點向量運算提供了超高性能。
第三向量 SIMD 浮點引擎專用于線性代數數學函數。這種專用引擎允許卸載和并行計算數學函數,將會在第 4 維度部分中進一步說明。
第 2維度:借助多任務發布 VLIW 實現靈活性
在 4 次發布 VLIW 方案中執行靈活分配,使處理器能夠盡可能分配最多的并行操作。VLIW 方案的開發與軟件編譯器的開發工作實現了密切配合,因此編譯器會預先分配在原始 C 代碼程序中編譯的運算符。編譯器與 VLIW 架構相結合,可以跨多個 SIMD 引擎并行執行操作
例如,圖 2 顯示了編譯器如何能夠結合 VLIW 分配方案,僅使用兩個 VLIW 插槽即可實現跨三個浮點 SIMD 引擎的并行執行,并且實現最佳的 VLIW 插槽分配和更小的指令代碼大小。因為兩個向量 SIMD 浮點引擎具有零周期插入延遲,所有可以在每個周期將向量數據加載到 SIMD 引擎中。線性代數向量 SIMD 引擎的插入延遲為四個周期,因此在加載數據之后,需要額外等待三個周期,直到可以加載新的向量數據為止。編譯器可以為這種不同的插入延遲預先分配 VLIW 插槽,從而在所有三個向量 SIMD 浮點引擎上提供有效的并行執行。
圖 2:三個并行向量 FPU 執行的編譯器分配
第 3?維度:可配置為單核、雙核及四核
DesignWare ARC VPX5 處理器 IP 與多個向量 SIMD 計算引擎并行,并帶有 VLIW 分配功能,?允許將單核擴展到雙核和四核配置。這樣可以根據需求將單核 VPX5 的計算性能提高一倍或三倍,以滿足更高的計算需求。DesignWare ARC MetaWare 開發工具完全支持跨多核配置的代碼編譯和執行。此外,由于產品包含信號功能,所以可支持多核任務執行和同步。
對于單核、雙核和四核配置,數據移動是 VPX5 產品的關鍵。有一個 2D 直接內存訪問 (DMA) 引擎,可配置多達四個以上的通道,每個周期最多提供 512 位傳輸。DMA 可以在各個多核的數據存儲器之間、本地集群存儲器之間或在外部 AXI 總線的輸入/輸出之間并行移動數據。這種高性能 DMA 與 VPX5 處理器的高計算吞吐量相得益彰,使向量 SIMD 引擎可以不斷訪問每個內核上與本地緊密耦合的向量數據存儲器中的新向量數據。
第 4?維度:線性代數計算
許多新一代算法使用依賴線性代數基本函數的數學方程式和計算來實現計算吞吐量。此類示例包括對象跟蹤和識別、預測建模以及一些篩選操作。在這種新的驅動趨勢之下,VPX 處理器在提供純粹用于線性代數的專用向量 SIMD 浮點計算引擎方面獨樹一幟。該引擎硬件加速了線性功能,例如除法、SQRT、1/SQRT、log2(x)、2^x、正弦、余弦和反正切,并在 SIMD 向量中予以執行,從而提供了非常高的性能。
這對于性能數字有何影響?
借助四維度并行處理功能,DesignWare ARC VPX5 處理器 IP ?可滿足高吞吐量應用對浮點和線性代數處理的需求。與具有類似架構的其他 DSP 處理器相比,該方案提供了業界領先的性能指標 - 例如,配置最高的 VPX5 每周期可提供 512 次半精度浮點運算1.5GHz 運行,相當于 768 GFLOP。此外,ARC VPX5 根據線性代數運算的使用情況,每周期可提供 16 次數學浮點計算。對于機器學習計算算法中使用的 8 位整數數據,VPX5 每周期最多則可提供 512 個 MAC。
DesignWare ARC MetaWare 開發工具現已可支持VPX5處理器,該工具提供了完整的編譯器、調試和仿真平臺。這使開發人員能夠快速高效地將 C 代碼算法編譯到 VPX5 內核中的處理引擎。循環等效仿真平臺讓開發人員可以自由評估循環計數性能,并檢查關鍵算法和程序的最佳性能。DesignWare ARC MetaWare 開發工具除了提供 DSP 庫之外,還提供線性代數和機器學習推斷 (MLI) 庫。這使得開發人員可以輕松地通過 API 接口將代碼移植到數據庫中,并很快達到最佳性能。在MLI 算法上則提供了各種基于神經網絡的計算組件,以實現高性能軟件 AI 計算。
結語
DesignWare ARC VPX5 處理器 IP ?是新一代 DSP,用于滿足處理密集型應用的數據計算需求。浮點、AI 和線性代數計算算法的四個并行處理維度使 DesignWare ?ARC VPX5 處理器能夠為汽車 ADAS 傳感器節點(RADAR 和 LiDAR)、5G 新無線電 (NR) 通信基帶調制解調器、動力系統、引擎管理、機器人技術、馬達控制和 5G 汽車通信 (5G C-V2X) 等應用提供超高性能。VPX5 憑借行業領先的 512 FLOP/周期和針對線性代數的獨特 16 數學 FLOP/周期,為系統開發人員提供了性能滿足新一代高性能計算算法需求的 DSP。結合具有 DSP 和數學庫的 ARC MetaWare 開發工具,開發人員可以快速移植 C 代碼算法并獲得最佳性能,以加快產品上市時間。
作者:Synopsys ARC 處理器產品營銷經理 Graham Wilson
?
評論
查看更多