使用 AMD Versal™ AI‌ Engine 釋放 DSP 運算能力

Versal AI Engine 技術能滿足高效能數位訊號處理 (DSP) 需求。

使用新一代 DSP 應用程式的客戶需要非常強大的運算能力,但這種能力卻無法透過傳統 FPGA 架構有效實現。運算密集型的 DSP 應用,例如 FIR、FFT 和一般矩陣乘法,有可能會占用大量的 DSP 區塊和可程式化邏輯資源。

這項需求會大幅降低傳統可程式化邏輯裝置上的整體運算量能。對於電力預算吃緊的密集型 DSP 工作負載而言,單純增加 DSP 區塊與可程式化邏輯,並非能夠大規模運用的解決之道。

‌Versal AI Engine 的設計可在這些情況下提供更有效率的運算解決方案。

瞭解更多關於 Versal AI Engine 的資訊

加速 Versal AI Engine 的 DSP 工作負載

提高整體系統效能的關鍵

將工作負載交給最能高效率執行之硬體:可程式化邏輯或 Versal AI Engine,可為能效和整體效能帶來巨大差異。瞭解 Versal AI Engine 為何是高效能 DSP 應用的理想選擇。 

提升運算效能並降低功耗

徹底改變您的 DSP 設計並最大化效能。

您知道您可以透過釋放效率和可擴充性,來滿足新一代高效能 DSP 應用程式日益增加的需求嗎?探索 AMD Versal AI Engine 提升您 DSP 設計的 5 種方法。

AI 引擎 DSP 設計流程

您可以使用 AMD Vitis™ 開發工具,或使用 Vitis Model Composer 流程來設計目標為 AMD Versal™ AI 引擎的高效能 DSP 功能,藉此善用 MathWorks Simulink® 工具的模擬與圖形功能。 

無論採用何種方式,重要的是將 DSP 應用對映至函數,然後實作於現場可程式化閘陣列 (Field Programmable Gate Array, FPGA)、AI 引擎,或 FPGA 邏輯加上 AI 引擎。這需要對於器件功能及整體系統,有相當程度的瞭解。 

通常而言,運算密集型函數較適合在 AI 引擎上實作,至於需要移動/重新排序資料的函數,較適合在 FPGA 上實作。 

從下方所示範例可見,複雜的過濾和傅立葉變換,通常更適合用於 AI 引擎陣列。

影像縮放
AMD Vitis AI Engine array chart

一旦清楚確定函數適合 AI 引擎,就可以使用以下任一選項,將其實作至 AI 引擎中。

附註:也可以從下表中挑選不只一個選項,採用混合式方法進行。 

程式設計環境

Vitis 平台為 DSP 程式庫、API 和內在函數之運用,提供兩種程式設計環境 

以 C/C++ 建置

Vitis 平台擁有開放原始碼建構模塊,適用於常見的 DSP 演算法、函數和裝置圖。您可以為了快速測試,而照原樣使用這些建構模塊,或是根據您的需求加以客製化。

C/C++ 流程

若打算用 AI 引擎設計 DSP,強烈建議從 Vitis DSP 程式庫函數(以 C 語言為基礎)著手。雖然手動編碼可實現更接近理想的實作成果,但採用下述方法卻是使用 AI 引擎設計 DSP 的最快方式,同時還能提供強大效能。(也可以從下表中挑選不只一個選項,採用混合式方法進行)

選項 1
Vitis DSP 程式庫函數呼叫


dsplib::fft::dit1ch::fft_ifft_dit_1ch
 

  • 使用最簡單
  • 可以參數化
  • 開發最快速
選項 2
使用 AI 引擎 API 進行向量化程式設計

aie::vector<int8_t, sizeTileA> A0 

aie::vector<int8_t, sizeTileA> A1
 

  • 可以客製化
  • 開發較快速
選項 3
使用內在函數進行向量化程式設計

Acc0 = mac16(acc0, Bbuff, 0, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210);​

Acc0 = mac16(acc0, Bbuff, 32, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210); 
 

  • 全面低階客製化 
  • 開發時間最長

接著就可以透過以 C++ 語言編寫的 Graph C 程式碼,描述多個 AI 引擎磚之間的網路關係,將不同的 AI 引擎函數互連在一起。  

採用 Vitis 模型編輯器之以模型為基礎的流程

編輯器可將開發工作導入 MathWorks MATLAB®/Simulink® 環境,讓您在其中產生 Versal AI Engine 內核、整合可程式化邏輯模組,以及模擬系統。

Vitis 模型編輯器流程

使用 Vitis 模型編輯器,則可透過圖形化的方式,互連不同的 AI 引擎函數。這種圖形化表示形式,能夠透過 Vitis 模型編輯器,一鍵轉換為 Graph C 程式碼。MathWorks Simulink 環境的強大模擬功能,亦可在設計驗證上發揮功用。

若要瞭解更多有關使用 Vitis 模型編輯器開發 Versal AI Engine 的資訊,請造訪使用 Vitis 模型編輯器開發 Versal AI Engine 頁面。

授權 AI 引擎工具

編譯器和模擬器

AMD Vitis™ 軟體安裝工具中,雖然有 AI 引擎編譯器和模擬器工具,但這些工具仍需取得免費授權才可使用。您可以從產品授權網站取得授權。

請輸入您的詳細資料,然後選擇「AI 引擎工具授權」此一選項。

Vitis GitHub 設計範例和教學課程

在高效能 DSP 應用的 AI 引擎中,運用 AMD GitHub 的最佳化設計範例、教學課程和程式庫函數。

這些都是開放原始碼設計,可用來加速設計週期。

在著手進行 AI 引擎開發方面,最熱門的 GitHub 資源有:

您也可以在 GitHub 上取得特別針對硬體 AIEAIE-ML 的設計和功能教學課程。

熱門焦點:適用於 AI 引擎的多相通道分離器設計

多相通道分離器是一種降頻轉換工具,以高效率的數位訊號處理方法,將單一資料流承載的一整組分頻多工 (FDM) 通道同時轉換成較低頻帶。通道分離器廣泛應用於無線通訊、雷達、航空/國防和醫療造影系統等多種領域。我們在本教學課程中,結合了 AMD Versal™ 自適應 SoC 器件中的 AI 引擎和可程式化邏輯 (PL) 資源,實現兩種截然不同的通道分離器設計。 

取得基準測試,將 Versal AI Engine 與先前可程式化邏輯技術進行比較

如需純可程式化邏輯設計與使用 AMD Versal 自適應 SoC 的自適應 SoC + AI Engine 設計之直接基準測試比較,請與銷售人員或您的 FAE 聯絡,以取得基準測試結果與來源設計。

資源

AMD Versal AI Engine 設計流程

網路研討會