精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

閑談Vitis AI|DPU在UltraScale平臺下的軟硬件流程(1)

XILINX開發者社區 ? 來源:XILINX開發者社區 ? 作者:陸禹帆 ? 2022-12-21 10:15 ? 次閱讀

前言

本篇中,我想跳過一些細枝末節, 先簡單介紹 AMD Xilinx Vitis AI 在 Zynq 這個硬件加速平臺下軟硬件開發的基本思路和流程,把各個開發流程和工具分開,幫助剛剛接觸Vitis/Vitis AI的同學快速找到學習和開發的方向。

為什么不用其他NPU平臺?

在使用Xilinx DPU來對我們的AI應用進行加速之前,我們應該明確一個問題:為什么我們需要使用Zynq 這樣一個硬件結構,而不是使用一些專用NPU芯片 (比如NV的嵌入式開發板) 來進行加速?

我個人認為, FPGA最大的優勢還是其對于特定應用的定制化和可重構能力(這是FPGA相對于其他類型芯片最大的不同,同時也是FPGA最具魅力的地方)。這種特性使得我們可以集中有限的硬件資源來動態的配置各種定制化應用,實現局部的高性能,達到四兩撥千斤的效果。

舉個例子:如果我們的在運行AI算法時,如果CPU執行預處理速度太慢,我們就可以自己設計自己的專用硬件來執行縮放,裁剪和卷積操作。如果我們的視頻編解碼太慢,我們也可以使用專用的IP來進行編解碼。同樣的功能,在非FPGA的平臺上使用CPU來執行時往往速度感人

搭建一個AI加速系統的必要步驟

正因如此,在使用 Vitis AI 的時候,我們其實是想要定制自己的硬件結構和AI模型的。要達成這個目標,我們會有一連串的問題需要解決:

1. 首先,硬件加速系統的第一步當然就是加速模塊設計(verilog或者HLS),沒有加速模塊,那我們的硬件加速的系統就是空談。在Vitis AI中,主要是指DPU和預處理等加速模塊。這個部分的重點是數字前端設計和算法設計。

2. 完成硬件設計之后,我們會遇到第二個問題,部署硬件模塊。與任何的SoC設計類似,如果我們想要在軟件系統中正確的調度我們的子模塊,我們在硬件底層就需要把合理地分配線路、內存、帶寬,正確地設計時鐘、地址、中斷等等。這個部分需要著重考慮的是SoC硬件系統設計。

3. 由于Vitis AI需要在linux環境下使用,因此僅僅完成硬件設計還是不夠的。我們必須要想辦法讓一個 linux系統運行在我們的硬件平臺上,識別到我們的加速模塊。也就是說我們需要針對我們的硬件平臺編譯一個Linux系統。其實核心就是提前告訴操作系統,你需要從哪里取地址,執行什么樣的操作。在這個階段就進入了嵌入式工程師的領域。

4. 光有系統還不行,我們需要為linux下的APP提供一套環境。和Standalone程序有所不同,在Linux系統中,我們通常不會在使用直接訪問地址的方式來操作加速器(除非加速器的操作和地址設計非常簡單)。因此開發一個中間層和驅動層也是有必要的。在Vitis AI中,在這個部分由AMD Xilinx提供,我們在實際的流程中幾乎看不到這個部分。(如果你想要開發一個私有硬件加速框架,就需要考慮這部分了)。

5. 當我們完成了上面所有的硬件,軟件,平臺和環境之后。我們其實才到最后一步:AI應用的開發。在上一步我們已經通過驅動和接口層把軟件和硬件進行了隔離。因此,在這個階段我們本質上就是在一塊專用NPU芯片上開發AI程序。總的來說,我們大概需要解決以下幾個問題:

訓練模型(在模型設計階段就需要考慮算子是否能夠被硬件支持的問題)

轉換模型。通常加速器是不能直接運行tf之類模型的(有些平臺可以直接運行,可能是由驅動中間層實現的隱式的轉換,個人水平有限此處不展開了討論),因此我們需要把AI網絡轉換成硬件能夠運行的執行文件。其實就是把模型轉換成加速器硬件看得懂的一組操作。在Vitis AI 中,我們需要把tf pt等框架的模型轉換成xmodel文件。

實現具體的加速程序,也就是在我們的程序中正確的調用各種加速器,來加速我們的APP。

其實我們問題總結一下,我們就得到了Vitis AI下搭建一個系統所需要的基本思路(如圖所示)。

325757b8-8056-11ed-8abf-dac502259ad0.jpg

注意:此處框圖列出的思路和實際的步驟有一點區別,為了大家理解我做了一點簡化,此處僅僅體現我們從零開始搭建一個系統的通用思想。實際的步驟和工具的使用會在后續博客中詳細的介紹。

327bd3d6-8056-11ed-8abf-dac502259ad0.jpg

這里其實還是需要強調下,雖然我列出了很多步驟,但是并不是說每一步都需要我們獨立完成。在真實的項目中,整個開發流程通常需要一個團隊來完成。上圖是AMD Xilinx的官方的圖,展示了 Vitis AI流程下需要的工程師角色和開發的方向。這些角色的工作其實是相對獨立的。通常而言,我們只需要在官方工程的基礎上,根據我們的需求來重新開發我們需要的部分就好。例如,如果你僅需要修改AI模型,我們完全可以跳過硬件設計部分,直接使用AMD Xilinx幫我們設計好的平臺。如果你只需要改硬件,你也可以使用官方的程序,跳過AI訓練的步驟。

關于AMD Xilinx的軟件工具,開發環境

下面我們來聊一聊VitisAI需要的開發工具和開發環境。對于Vitis AI開發來說,我主要用到的開發工具就是 Vivado (HLS) / Petalinux / Vitis / Vitis AI。由于工具的名字比較多,這里我把對應的工具和對應的開發方向做一個簡單的介紹,方便大家快速找到自己需要的工具。

硬件

如果你是一個傳統FPGAer,那一定不需要我來介紹Vivado這個工具了。Vivado作為來設計數字電路和硬件系統的專用開發工具,基本上是人手必備了。我我唯一想要提醒的是,基于Vitis的流程來開發你的加速器時,我更推薦使用Linux開發環境,而不是Window。一個經典的 Ubuntu 16.4.4 系統作為開發環境,可以節約我們很多寶貴的時間。

329a4050-8056-11ed-8abf-dac502259ad0.jpg

Vivado的BlockDesign是很Vitis流程中很常用的功能之一

嵌入式、硬件、軟件

Petalinux是 ZynqMP系列官方工程原配的系統,雖然理論上很多芯片已經可以運行Ubuntu 和 pynq,但是想要深入官方的工程,Petalinux還是不得不品嘗的。Petalinux準確的來說其實是整套Linux的開發工具,而不僅僅是單純系統本身。舉個例子:在用Petalinux自動化生成設備樹,一般說的是在我們的開發環境(比如Ubuntu中)使用Petalinux工具來生成。Petalinux本身是需要安裝的,也沒有任何的GUI環境,因此對于新手有一定難度。但是想要開發一個屬于自己的動態可加載的加速應用(例如,KV260的動態加載的APP模式),Petalinux的流程是必須的。我打算日后單獨來聊一聊。

32b7668a-8056-11ed-8abf-dac502259ad0.jpg

Petalinux還可以配置FPGA特定的功能和應用

由于名字類似,Vitis 和 Vitis AI 恐怕最最令人迷惑的兩個工具了。實際上,這兩個工具是兩個完全不同的東西。Vitis 其實是一個集成開發環境,有安裝包,有GUI,它和Vivado有點類似(這個軟件改名叫Vitis SDK或許更合適)。在目前的流程中,Vitis主要用來開發嵌入式程序(C)和集成加速器(Verilog/HLS)。后面這部分似乎與Vivado類似,在Vitis中加入這部分的原因,主要是考慮到,Vivado不能很方便的進行軟件聯調。參考上面的流程圖,實際設計中我們如果完成嵌入式軟件后想要修改硬件,就需要返回到Vivado中重新設計,重新使用Petalinux工具編譯,最后修改軟件。這個流程經過好幾個軟件,可以說非常痛苦的。Vitis的流程很好的解決這個問題。在Vitis中,我們可以很方便的重新連接IP端口,修改IP數量。硬件的編譯,系統的修改,都可以由Vitis自動完成(其實Vitis在后臺調用的還是Vivado的命令)。當然,Vitis會限制我們對于硬件平臺的修改,也不能完整編譯Petalinux,因此具體流程中我們需要三個軟件配合才能讓其流暢的工作。具體的流程,我會在后續的博客中具體的分析。

32e86d2a-8056-11ed-8abf-dac502259ad0.jpg

Vitis有不少老工具的既視感

AI

最后讓我們來談談Vitis AI。如果你不知道Vitis AI是什么,請記住,其實Vitis AI不是一個軟件而是一套給 AI開發者的工具腳本環境樣例的集合。像所有的github項目一樣,Vitis AI不需要安裝,下載Vitis AI只需要找到項目地址,然后根據README下載和配置即可。

假設你是一個純AI的開發者想要玩Vitis AI,其實你并不需要去管Vivado、petalinux、Vitis這種工具。因為AI幾乎是一個純軟件的部分。如果你只是先要運行一個基本的demo,你需要做的只是找到Vitis AI項目地址,clone,然后打開Vitis AI 的toturial。至于嵌入式系統,加速器硬件,你只需要下載一個官方編譯好的系統,燒錄進SD卡,最后打開開發板。你就會發現,系統,環境,加速器,都已經準備好了。您的開發工作僅僅就參考我上圖的流程中AI的部分(嵌入式以上的部分就好)。

3304aa58-8056-11ed-8abf-dac502259ad0.jpg

Vitis AI是一個Github的項目

小結

本篇主要是閑談個人對于Vitis AI的整個開發流程的理解,主要是想幫助一下新手快速找到一個開發目標,不至于迷失在大量的工具的方向中。后續的博客中,我會繼續嘗試介紹一些開發流程中的細節。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Xilinx
    +關注

    關注

    70

    文章

    2136

    瀏覽量

    120362
  • AI
    AI
    +關注

    關注

    87

    文章

    28818

    瀏覽量

    266157
  • DPU
    DPU
    +關注

    關注

    0

    文章

    341

    瀏覽量

    24044
  • UltraScale
    +關注

    關注

    0

    文章

    114

    瀏覽量

    31421
  • Vitis
    +關注

    關注

    0

    文章

    145

    瀏覽量

    7310

原文標題:閑談 Vitis AI | DPU 在 UltraScale 平臺下的軟硬件流程 (1)

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【米爾FZ3深度學習計算卡試用體驗】搭建Vitis Ai系統平臺并測試

    1 Vitis AiVitis? AI 開發環境是 Xilinx 的開發平臺,適用于 Xilinx
    發表于 12-03 19:22

    【米爾FZ3深度學習計算卡試用體驗】DPU搭建

    設計公司,如今Xilinx中使用的深度學習技術——DPU就是該公司設計的黑盒子,能夠靈活的配置DPU的屬性,大大的節省了開發周期,充錢的半年甚至以上,現在可能不要半個月即可實現。如圖是DPU
    發表于 12-10 15:23

    【米爾百度大腦EdgeBoard邊緣AI計算盒試用連載】IV. FZ5-DPU@2020.2(ZMJ)

    參考Vitis-AI(v1.2)EdgeBoard-FZ5C上部署B4096DPU,完成DPU自檢。//------Vitis-AI(v1
    發表于 04-16 17:09

    Vitis AI Model Zone軟件平臺具備哪些功能?

    Vitis AI Model Zone軟件平臺具備哪些功能?Vitis AI Model Zone軟件
    發表于 07-09 06:44

    DNW下載的軟硬件流程是如何去完成的

    DNW下載的軟硬件流程是如何去完成的?怎樣去下載DNW的軟硬件呢?有哪些下載步驟?
    發表于 12-24 08:01

    ultrascale+上利用VCU和DPU實現的智能零售系統

    DPU推理代碼編譯好的文件tfssdtest.so已經demo/,可以跳過這一步,直接使用提供的文件。1.設置主機按照Xilinx/Vitis-AI-Library上的步驟操作2.交
    發表于 02-20 17:35

    阿里平頭哥發布首個 RISC-V AI 軟硬全棧平臺

    平臺通過軟硬件深度協同,較經典方案提升超 8 成性能,支持運行 170 余個主流 AI 模型,推動 RISC-V 進入高性能 AI 應用時代。 平頭哥表示,他們通過更新自研一站式
    發表于 08-26 14:14

    【KV260視覺入門套件試用體驗】Vitis AI 初次體驗

    一、基礎環境 硬件:KV260視覺入門套件 攝像頭:海康720P USB攝像頭(因為部署Vitis AI之后懶得poweroff插MIPI camera了,直接USB上) 軟件:Ubuntu
    發表于 09-10 13:15

    【KV260視覺入門套件試用體驗】部署DPU鏡像并運行Vitis AI圖像分類示例程序

    本文首先將會對Vitis統一軟件平臺和Vitsi AI進行簡單介紹,然后介紹如何在KV260上部署DPU鏡像,最后KV260
    發表于 09-10 23:01

    【KV260視覺入門套件試用體驗】Vitis-AI加速的YOLOX視頻目標檢測示例體驗和原理解析

    示例體驗 參考此前的帖子:【KV260視覺入門套件試用體驗】部署DPU鏡像并運行Vitis AI圖像分類示例程序 - 智能硬件論壇 - 電子技術論壇 - 廣受歡迎的專業電子論
    發表于 10-06 23:32

    【KV260視覺入門套件試用體驗】Vitis AI 構建開發環境,并使用inspector檢查模型

    支持。需要做的不只是執行幾條命令,還需要了解賽靈思硬件平臺的特點,選擇合適的模型和框架,使用 Vitis AI 提供的工具和庫進行優化和編譯,最后
    發表于 10-14 15:34

    單片機測控系統的軟硬件平臺技術

    本文探討了一種用于工業測控系統的單片機軟硬件綜合設計方法——軟硬件平臺技術,重點闡述了其基本原理、設計思想、實現方法,并給出了一個單片機測控系統軟硬件開發
    發表于 08-13 09:38 ?12次下載

    基于FPGA芯片的軟硬件平臺的使用

    基于FPGA芯片的軟硬件平臺的使用
    發表于 07-01 09:35 ?20次下載

    賽靈思FPGA SoC平臺上使用VITIS AI加速人工智能應用

      VITIS 是一個用于開發軟件和硬件的統一軟件平臺,將 Vivado 和其他組件用于 Xilinx FPGA SoC 平臺,如 ZynqMP U
    的頭像 發表于 11-22 14:48 ?1849次閱讀

    軟硬件融合的概念和內涵

    跟很多朋友交流,當提到軟硬件融合的時候,他們會這么說:“軟硬件融合,難道不是顯而易見嗎?我感覺二三十年前就已經有這個概念了。”在他們的想法里,其實:軟硬件融合等同于
    的頭像 發表于 10-17 14:36 ?1136次閱讀
    <b class='flag-5'>軟硬件</b>融合的概念和內涵