今天的設計團隊如果采用傳統的 RTL 設計流程,将花費很多時間才能将運算密集型網絡帶入到硬件中,該領域亟需一個有别于以往 RTL 流程,同時又能有效提高生産力的方法。
CATAPULT HLS 平台的時代來臨
15 年前,Mentor 認識到設計和驗證團隊需要從 RTL 升級到 HLS 層級,并開發 Catapult®HLS 平台。該平台提供了從 C 到最佳化 RTL 的完整流程(圖 1)。
圖 1:Catapult HLS 平台
Catapult HLS 平台為算法設計師提供硬件設計解決方案,可以從 C /SystemC 描述,生成高品質的 RTL,并且以 ASIC、FPGA 或 eFPGA 為目标。此平台能在合成之前檢查設計中的錯誤、為功能驗證和覆蓋率分析提供無縫且可重複使用的測試環境,同時支持在生成的 RTL 與原始 HLS 來源之間執行形式等效性檢查。
該解決方案的優勢包括:
AI 加速器生态系統
同時,Mentor 在 Catapult HLS 平台中部署了 AI 加速器生态系統(圖 2),為 AI 設計師提供能快速展開項目的環境。
圖 2:Catapult AI 加速器生态系統
AC MATH 數據庫
Algorithmic C Math(AC Math)中的所有函數都以 C 模闆參數寫成,讓設計師可依據目标應用來指定數值的精準度。許多函數都使用不同的近似策略,例如,自然對數提供兩種形式,即分段線性近似和 cordic 形式。在可接受準确度稍有誤差的情況下,前者較小且較快; 後者雖然較慢,但準确許多。所有情況下都能自定義來源以達成設計目标。每個功能/内存塊都附有詳細的設計文件和 C 驗證程序。由于 Catapult HLS 平台會利用 C 驗證程序,因此很容易根據來源設計來驗證 RTL 準确度。
該數據庫中的數學函數類别包括:
DSP 數據庫
Algorithmic C DSP(AC DSP)數據庫定義了 DSP 設計師通常所需要的可合成 C 函數,例如濾波器和 FFT。這些函數采用以 C 類别為主的設計,讓設計師能輕松示例物件的衆多變體,以打造複雜的 DSP 子系統。與 AC Math 數據庫一樣,輸入和輸出參數都會參數化,以便能在所需的定點精确度下執行算術,從而在為合成的硬件執行面積和性能折衷時,提供高度的彈性。
DSP 數據庫包含:
AI 加速器生态系統還可提供豐富的工具組,由真實且經過測試的加速器參考設計示例,團隊可以研究、修改和複制這些示例,迅速展開項目。這些随 Catapult 提供的套件,包含了可設定的 C /SystemC IP 原始代碼、文件紀錄、驗證程序和指令碼,讓設計能進行 HLS 合成和驗證流程。這些工具組展示了各種能用來對性能(延遲)、幀率、面積或功率的折衷進行實驗的方法和編寫程序技術。
PIXEL-PIPE 視訊處理工具組
該視訊處理工具組展示了一個使用 pixel-pipe 加速器的即時圖像處理應用程序(圖 3)。加速器内存塊使用 C 類階層構架來實作。該内存塊将圖像縮小,并将圖像從彩色轉換為單色,以執行邊緣偵測,然後放大圖像。Xilinx®PetaLinux 下的 CPU 上,執行了一個使用者空間應用程序,此程序能讓軟件控制開啟或關閉邊緣偵測内存塊。工具組文件紀錄會顯示如何使用 Xilinx IP 将該内存塊整合到 Xilinx 電路闆中,以便團隊展示該系統。
圖 3:Pixel-pipe 視訊處理工具組
2-D 折積工具組
該工具組展示了如何以 C 對 Eyeriss1 處理元件(PE)數組進行編碼,實作 2-D 折積以執行圖像的強化(銳化、模糊和邊緣偵測)。處理元件(圖 4)可以執行 3x1 乘積累加(折積)。
圖 4:Eyeriss 處理元件
TINYYOLO 物件辨識工具組
物件辨識工具組(圖 5)展示了使用折積加速器引擎的物件辨識應用程序,該引擎使用 2-D Eyeriss 工具組中的 PE 數組實現。該工具組展示了如何透過 AXI4 互連(從系統內存來讀取核心權重數據)取得高速數據路由,并展示如何定義高效能內存構架。該工具組提供 TensorFlow 整合能力,可以 C 語言的網絡層能進行推理測試。
圖 5:TINYYOLO 工具組示例 - 系統視圖
系統整合
加速器内存塊并非獨立存在,Catapult HLS 提供“界面合成”能力,以将時間性協定加入至非時間性 C 函數界面變數。設計師隻需要在 Catapult GUI 中,為協定設定構架約束條件。此工具可支持典型的協定,例如 AXI4 視訊串流、請求/認可交握,以及內存界面。這讓設計師不必變更 C 原始碼,就能探索界面協定。
AXI 示例
AXI 示例(圖 6)顯示了如何使用 Catapult HLS 産生的 AXI 界面 IP,在 AXI SoC 子系統中示例一個或多個加速器元件。提供主控端、受控端和串流示例。
圖 6:AXI 示例
基礎處理器示例
基礎處理器示例(圖 7)顯示了如何将機器學習加速器連接到完整的處理器型系統中,并采用了 AXI 示例。此示例中的機器學習加速器采用了簡單的乘積/累加構架,搭配 2-D 折積和區域取最大值。支持數個第三方處理器 IP 模型,并包含一個用于裸金屬編程的軟件流程(含有相關數據)。
圖 7:基礎處理器平台示例
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!