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