VITIS 是一個用于開發軟件和硬件的統一軟件平臺,將 Vivado 和其他組件用于 Xilinx FPGA SoC 平臺,如 ZynqMP UltraScale+ 和 Alveo 卡。VITIS SDK的關鍵組件,VITIS AI運行時(VART),為在邊緣和云端部署終端ML/AI應用程序提供了一個統一的接口。
機器學習中的推理是計算密集型的,需要高內存帶寬和高性能計算,以滿足各種終端應用的低延遲和高吞吐量需求。
維蒂斯人工智能工作流程
Xilinx Vitis AI 提供了一個工作流程,使用簡單的流程在 Xilinx 深度學習處理單元 (DPU) 上部署深度學習推理應用:
深度處理單元 (DPU) 是一個可配置的計算引擎,針對深度學習推理應用的卷積神經網絡進行了優化,并放置在可編程邏輯 (PL) 中。DPU 包含高效且可擴展的 IP 核,可進行定制以滿足許多不同應用的需求。DPU 定義自己的指令集,Vitis AI 編譯器生成指令。
VITIS AI編譯器以優化的方式安排指令,以獲得最大的效能。
在 Xilinx ZynqMP UltraScale+ SoC 平臺上運行任何 AI 應用程序的典型工作流程包括以下內容:
模型量化
模型編譯
模型優化(可選)
構建 DPU 可執行文件
構建軟件應用程序
集成 VITIS AI 統一 API
編譯和鏈接混合 DPU 應用程序
在 FPGA 上部署混合 DPU 可執行文件
人工智能量化器
AI 量化器是一種用于量化過程的壓縮工具,通過將 32 位浮點權重和激活轉換為定點 INT8。它可以在不丟失模型準確信息的情況下降低計算復雜性。定點模型需要更少的內存,因此提供比浮點實現更快的執行速度和更高的電源效率。
人工智能編譯器
AI 編譯器將網絡模型映射到高效的指令集和數據流。編譯器的輸入是量化的 8 位神經網絡,輸出是 DPU 內核 - 可執行文件將在 DPU 上運行。在這里,不支持的層需要部署在CPU中,或者可以自定義模型來替換和刪除那些不支持的操作。它還執行復雜的優化,如層融合、指令調度和片上存儲器的重用。
一旦我們能夠執行 DPU,我們需要使用 Vitis AI 統一的 API 來初始化數據結構,初始化 DPU,在 CPU 上實現 DPU 不支持的層,并根據需要在 PL/PS 上添加預處理和后處理。
人工智能優化器
憑借其模型壓縮技術,AI 優化器可以將模型復雜性降低 5-50 倍,同時對準確性的影響最小。這種深度壓縮將推理性能提升到一個新的水平。我們可以實現所需的稀疏性并將運行時間縮短 2.5 倍。
AI 分析器
AI 探查器可以幫助分析推理查找導致端到端管道瓶頸的注意事項。性能分析器為設計人員提供了 DPU/CPU/內存的通用時間線。此過程不會更改任何代碼,并且可以跟蹤函數并進行分析。
人工智能運行時
VITIS AI 運行時 (VART) 允許應用程序使用統一的高級運行時 API 進行邊緣和云部署,使其無縫且高效。一些主要功能包括:
異步作業提交
異步作業收集
多線程和多進程執行
Vitis AI還提供DSight,DExplorer,DDump和DLet等,用于各種任務執行。
DSight & DExplorer
DPU IP 為特定內核提供了多種配置,可根據網絡型號進行選擇。DSight 告訴我們每個 DPU 內核的利用率百分比。它還提供了調度程序的效率,以便我們可以調整用戶線程。還可以查看性能數字,例如每層和每個DPU節點的MOPS,運行時和內存帶寬。
Softnautics選擇 Xilinx ZynqMP UltraScale+ 平臺進行高性能和計算部署。它提供最佳的應用處理、高度可配置的 FPGA 加速功能,以及 VITIS SDK,以加速高性能 ML/AI 推理。我們針對的一個這樣的應用是用于 Covid-19 篩查的口罩檢測。其目的是根據各國政府對 Covid-19 預防措施指南的要求,部署多流推理,用于對戴口罩的人進行 Covid-19 篩查并實時識別違規行為。
我們準備了一個數據集并選擇了預先訓練的權重來設計一個用于掩模檢測和篩選的模型。我們通過TensorFlow框架訓練和修剪了我們的自定義模型。這是人臉檢測和面具檢測的兩階段部署。這樣獲得的訓練模型是通過前面章節中介紹的VITIS AI工作流程傳遞的。我們觀察到推理時間的速度是 CPU 的 10 倍。Xilinx 提供不同的調試工具和實用程序,在初始開發和部署過程中非常有用。在初始部署階段,我們沒有檢測到掩碼和非掩碼類別。我們嘗試將基于 PC 的推理輸出與一個名為 Dexplorer 的調試實用程序之一的輸出相匹配。但是,調試模式和根導致問題進一步調試。運行量化器后,我們可以使用更大的校準圖像、迭代和檢測來調整輸出,視頻饋送的準確率約為 96%。我們還嘗試使用 AI 分析器識別管道中的瓶頸,然后采取糾正措施通過各種方式消除瓶頸,例如使用 HLS 加速來計算后處理中的瓶頸。
審核編輯:郭婷
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603024 -
soc
+關注
關注
38文章
4163瀏覽量
218170 -
人工智能
+關注
關注
1791文章
47206瀏覽量
238276
發布評論請先 登錄
相關推薦
評論