VITIS 是一個(gè)用于開(kāi)發(fā)軟件和硬件的統一軟件平臺,使用 Vivado 和其他用于 Xilinx FPGA SoC 平臺(如 ZynqMP UltraScale+ 和 Alveo 卡)的組件。VITIS SDK 的關(guān)鍵組件 VITIS AI 運行時(shí) (VART) 為在邊緣和云上部署終端 ML/AI 應用程序提供了統一的接口。
機器學(xué)習中的推理是計算密集型的,需要高內存帶寬和高性能計算,以滿(mǎn)足各種終端應用程序的低延遲和高吞吐量要求。
Vitis AI 工作流程
Xilinx Vitis AI 提供了一個(gè)工作流,可使用簡(jiǎn)單的流程在 Xilinx 深度學(xué)習處理單元 (DPU) 上部署深度學(xué)習推理應用程序:
深度處理單元 (DPU) 是一種可配置的計算引擎,針對深度學(xué)習推理應用的卷積神經(jīng)網(wǎng)絡(luò )進(jìn)行了優(yōu)化,并置于可編程邏輯 (PL) 中。DPU 包含高效且可擴展的 IP 內核,可進(jìn)行定制以滿(mǎn)足許多不同應用的需求。DPU 定義自己的指令集,Vitis AI 編譯器生成指令。
VITIS AI 編譯器以?xún)?yōu)化的方式調度指令以獲得可能的最大性能。
在 Xilinx ZynqMP UltraScale+ SoC 平臺上運行任何 AI 應用程序的典型工作流程包括以下內容:
模型量化
模型編譯
模型優(yōu)化(可選)
構建 DPU 可執行文件
構建軟件應用程序
集成 VITIS AI 統一 API
編譯和鏈接混合 DPU 應用程序
在 FPGA 上部署混合 DPU 可執行文件
人工智能量化器
AI Quantizer 是一種用于量化過(guò)程的壓縮工具,通過(guò)將 32 位浮點(diǎn)權重和激活轉換為定點(diǎn) INT8。它可以在不丟失模型準確信息的情況下降低計算復雜度。定點(diǎn)模型需要更少的內存,因此比浮點(diǎn)實(shí)現提供更快的執行和更高的功率效率。
人工智能編譯
AI 編譯器將網(wǎng)絡(luò )模型映射到高效的指令集和數據流。編譯器的輸入是量化的 8 位神經(jīng)網(wǎng)絡(luò ),輸出是 DPU 內核 - 可執行文件將在 DPU 上運行。在這里,不支持的層需要部署在 CPU 中,或者可以自定義模型來(lái)替換和刪除那些不支持的操作。它還執行復雜的優(yōu)化,例如層融合、指令調度和片上存儲器的重用。
一旦我們能夠執行 DPU,我們需要使用 Vitis AI 統一 API 來(lái)初始化數據結構,初始化 DPU,在 CPU 上實(shí)現 DPU 不支持的層,并在 CPU 上添加預處理和后處理PL/PS 的需求基礎。
人工智能優(yōu)化器
借助其模型壓縮技術(shù),AI Optimizer 可以將模型復雜度降低 5-50 倍,而對準確性的影響最小。這種深度壓縮將推理性能提升到一個(gè)新的水平。我們可以實(shí)現所需的稀疏性并將運行時(shí)間減少 2.5 倍。
人工智能分析器
AI Profiler 可以幫助分析推理找到導致端到端管道瓶頸的警告。分析器為設計人員提供了 DPU/CPU/內存的通用時(shí)間線(xiàn)。此過(guò)程不會(huì )更改任何代碼,并且可以跟蹤功能并進(jìn)行分析。
人工智能運行時(shí)
VITIS AI 運行時(shí) (VART) 允許應用程序使用統一的高級運行時(shí) API 進(jìn)行邊緣和云部署,使其無(wú)縫且高效。一些關(guān)鍵功能包括:
異步作業(yè)提交
異步作業(yè)收集
多線(xiàn)程和多進(jìn)程執行
Vitis AI 還提供 DSight、DExplorer、DDump 和 DLet 等,用于執行各種任務(wù)。
DSight & DExplorer
DPU IP 為特定內核提供了多種配置,以根據網(wǎng)絡(luò )模型進(jìn)行選擇。DSight 告訴我們每個(gè) DPU 核心的百分比利用率。它還提供了調度程序的效率,以便我們可以調整用戶(hù)線(xiàn)程。還可以查看每一層和每個(gè) DPU 節點(diǎn)的性能數據,例如 MOPS、運行時(shí)間和內存帶寬。
Softnautics選擇賽靈思 ZynqMP UltraScale+ 平臺進(jìn)行高性能和計算部署。它提供最佳的應用程序處理、高度可配置的 FPGA 加速功能和 VITIS SDK,以加速高性能 ML/AI 推理。我們針對的此類(lèi)應用之一是用于 Covid-19 篩查的面罩檢測。其目的是為戴口罩的人的 Covid-19 篩查部署多流推理,并根據各國政府對 Covid-19 預防措施指南的要求,實(shí)時(shí)識別違規行為。
我們準備了一個(gè)數據集并選擇了預訓練的權重來(lái)設計一個(gè)用于掩碼檢測和篩選的模型。我們通過(guò) TensorFlow 框架訓練和修剪我們的自定義模型。這是面部檢測和面具檢測的兩階段部署。如此獲得的訓練模型通過(guò)前面章節中介紹的 VITIS AI 工作流程傳遞。與 CPU 相比,我們觀(guān)察到推理時(shí)間的 10 倍速度。Xilinx 提供了不同的調試工具和實(shí)用程序,它們在初始開(kāi)發(fā)和部署期間非常有用。在我們最初的部署階段,我們沒(méi)有檢測到掩碼和非掩碼類(lèi)別。我們嘗試將基于 PC 的推理輸出與名為 Dexplorer 的調試實(shí)用程序之一的輸出相匹配。但是,調試模式和根本原因導致問(wèn)題進(jìn)一步調試。在運行量化器時(shí),我們可以使用更大的校準圖像、迭代和檢測來(lái)調整輸出,視頻輸入的準確率約為 96%。我們還嘗試使用 AI 分析器識別管道中的瓶頸,然后采取糾正措施以通過(guò)各種方式消除瓶頸,例如使用 HLS 加速來(lái)計算后處理中的瓶頸。
審核編輯:郭婷
-
cpu
+關(guān)注
關(guān)注
68文章
10526瀏覽量
207451 -
Xilinx
+關(guān)注
關(guān)注
70文章
2129瀏覽量
119697 -
AI
+關(guān)注
關(guān)注
87文章
27214瀏覽量
264964
發(fā)布評論請先 登錄
相關(guān)推薦
Vitis AI Library體驗之OCR識別
![<b class='flag-5'>Vitis</b> <b class='flag-5'>AI</b> Library體驗之OCR識別](https://file1.elecfans.com/web2/M00/A8/75/wKgaomUtUuyALPMcAAFHGKOsVQw106.png)
【KV260視覺(jué)入門(mén)套件試用體驗】Vitis AI Library體驗之OCR識別
【KV260視覺(jué)入門(mén)套件試用體驗】KV260系列之Petalinux鏡像+Resnet 50探索
【KV260視覺(jué)入門(mén)套件試用體驗】Vitis AI 構建開(kāi)發(fā)環(huán)境,并使用inspector檢查模型
【KV260視覺(jué)入門(mén)套件試用體驗】Vitis-AI加速的YOLOX視頻目標檢測示例體驗和原理解析
【KV260視覺(jué)入門(mén)套件試用體驗】基于Vitis AI的ADAS目標識別
【KV260視覺(jué)入門(mén)套件試用體驗】六、VITis AI車(chē)牌檢測&車(chē)牌識別
【KV260視覺(jué)入門(mén)套件試用體驗】五、VITis AI (人臉檢測和人體檢測)
【KV260視覺(jué)入門(mén)套件試用體驗】5、簡(jiǎn)單幾步體驗Vitis AI
Vitis AI RNN用戶(hù)指南
![<b class='flag-5'>Vitis</b> <b class='flag-5'>AI</b> RNN用戶(hù)指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論