在 AMD,我們對 Versal? ACAP 所搭載的 AI 引擎技術感到興奮不已,因為在 AMD 和賽靈思服務的眾多市場上,其對交付高性能自適應計算起到重要作用。Versal AI Core 與 AI Edge 系列搭載了這種 AI 引擎技術,非常適合對計算加速有著關鍵需求的用例。
AI 引擎真正實現了功能多用性,可提升機器學習( ML )和信號處理應用帶來的性能。我們曾經深入介紹過,與 GPU 相比,機器學習 AI 引擎( AIE-ML )的單位功耗 AI 性能是 GPU 的 4 倍。不過今天,我們的重點是信號處理,特別是快速傅里葉變換( FFT )。
除非您是一名 DSP 專家,否則您可能只會模糊地回憶起大學時期在信號處理入門課上學到的 FFT。幸運的是,您不必重拾書本,就能在 AI 引擎上實現 FFT,因為軟件會為您解決最硬核的部分(后續詳解)。不過還是要記住,FFT 是有史以來開發出的最重要的算法之一,支持著我們日常使用的幾乎所有圖像和音頻壓縮與數字通信。
回到今天的話題,讓我們回顧一下 FFT 如何運用于各種應用,如激光雷達、光探測和測距,以及雷達、無線電探測和測距。激光雷達或雷達發射器會發射頻率隨時間而變化的正弦信號。信號從目標反射,被接收器接收。通過分析接收到的波形的特征,就能計算出目標的位置和相對速度。具體方法就是使用 FFT 查看反射信號的頻譜內容。信號幅度與檢測到目標的時間成正比,信號頻率則與距離目標的遠近成正比。通過這種從頻域到時域的轉換,一系列信號便能生成對某個特定位置有意義的表示,如 2D 或 3D 點云或 4D 雷達,從而生成圖像。對于汽車應用,總 FFT 吞吐量相對較低——需要小于 1 GSPS。對于特定的雷達或通信應用,可能需要高達 10-15 GSPS 的采樣率。
現在我們已經了解了 FFT 的高級功能,接下來我們將介紹如何借助 AI 引擎發揮 FFT 的優勢。
使用 FFT 生成的點云或 4D 雷達可以回饋給 AI 引擎,以執行 CNN ML 功能。Vitis? AI 已在我們的 Model Zoo 中提供模型,方便使用 PointPillars 實現邊框,進行目標檢測和/或用 SalsaNext 進行語義分割。這樣做之所以可行,是因為運行 FFT 消耗的資源很少,從而能夠留出大部分 AI 引擎,借助 ML 為您的應用提速。
從功耗的角度來看,AI 引擎比使用可編程邏輯要有效得多。功耗降低了約 50%,由此使得單位功耗性能提高了 2 倍。
AI 引擎陣列架構支持存儲器共享,從而提升了 FFT 的計算量。通過下表可以看到,計算 64 通道 2K x 1K 2D FFT 需要三個 Zynq? UltraScale+? MPSoC ZU3 器件。也可以只用單個 Versal AI Edge VE2102 器件。
我們的 GitHub 站點提供了詳細的教程,完整講解了在 VCK190 評估套件上實現 2D FFT 的過程。教程先概述了設計流程,接著詳細講解了軟硬件實現方案。簡化設計流程的關鍵在于 Vitis DSP 庫內提供的 FFT 內核。詳細的性能數據有助于用戶掌握每種設計變體的資源利用率、時延、吞吐量和功耗。此外,也提供了在 Versal AI Edge 系列上實現 FFT 所需的設計資源。