element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Eye On Intelligence Challenge
  • Challenges & Projects
  • Design Challenges
  • Eye On Intelligence Challenge
  • More
  • Cancel
Eye On Intelligence Challenge
Blog Person Detection with yolo #3 Vitis AI and DPU behind Arty Z7
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Eye On Intelligence Challenge to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: fyaocn
  • Date Created: 13 Nov 2024 6:18 AM Date Created
  • Views 1093 views
  • Likes 6 likes
  • Comments 1 comment
  • Eye on Intelligence Challenge
Related
Recommended

Person Detection with yolo #3 Vitis AI and DPU behind Arty Z7

fyaocn
fyaocn
13 Nov 2024

#3 Vitis AI and DPU behind Arty Z7

Table of Contents

  • 1 DPU behind Arty Z7
  • 2 Vitis AI to DPU
  • 3 Go deep into DPU 
  • 4 Model for DPU 
  • 5 Summary 

1 DPU behind Arty Z7

Vitis AI is Integrated Development Environment that fasilating ML development . This is diagram for Vitis AI 3.5, the Arty Z7 is missing from the diagram. According to feedback from AMD community, the Zynq-7000 is not offcially supported since Vitis 1.4. While the Arty Z7 is still applicable as costuminzed board, just like Pynq-Z1 board.

image

Vitis AI is make developer's  work easy,  using high-level programming tools like tensorflow in python to drive AI applications.

DPU, which is core of Vitis AI, make deploying AI application in Arty Z7 quick and easy.

2 Vitis AI to DPU

Deep Learning Processing Units ( DPUs) is the FPGA binary accelerator for Machine Learning. As of version 3.5 different DPU support different hardware platform

image

Vitis AI stack support DPU with stack and samples

image

Another feature of Vitis AI support prune dense model into sparse model with smaller parameters for faster computation with minimum performance lose

image

DPU is propriety IP imported in vivado IDE, then export the hardware files for petalinux to create image files.

The problem for Using dpu in Arty Z7 is that Zynq-7000 is not officially supported since version 1.4. Here is the screenshot from Vitis AI User Guide v1.4

image

Porting DPU in new board is obviously difficult for normal developers with limit technical support. And Arty Z7 can support DPU with right version

3 Go deep into DPU 

DPU varies in size and paremeters with name conventions

image

DPU with ZD in third part support Zynq DDR is minimum size DPU can fit for the LUTs for Zynq-7000. It work like Accelerators

 refer to Introduction • DPUCZDX8G for Zynq UltraScale+ MPSoCs Product Guide (PG338) • Reader • AMD Technical Information Portal

image

DPU IP IP is available in multiple variants, scaling both in terms of logic resource utilization and parallelism.  Configurations include: B512, B800, B1024, B1152, B1600, B2304, B3136, and B4096, where the nomenclature indicates the total number of MACs per DPU clock cycle.

The DPU work with Vitis AI stack in the following flow

image

In vivado design block, the position of DPU can be

image

one example is like

image

Other DPU runs with more cores and more data throughout fit for other hardware platform.

4 Model for DPU 

The dpu is accelerator and only support normal CNN operators. The following list highlights key supported operators for the DPUCZDX8G :

  • Supports both Convolution and transposed convolution
  • Depthwise convolution and depthwise transposed convolution
  • Max pooling
  • Average pooling
  • ReLU, ReLU6, Leaky ReLU, Hard Sigmoid, and Hard Swish
  • Elementwise-sum and Elementwise-multiply
  • Dilation
  • Reorg
  • Correlation 1D and 2D
  • Argmax and Max along channel dimension
  • Fully connected layer
  • Softmax
  • Concat, Batch Normalization

That is enough for most ML models. In Vitis AI Library User Guide,  many model is supported

image

For classification, object detection and more complex model. There model can be got from AMD model zoo. If customized model is needed, the design flow for compile model is available. .The model is the compiled in .xmodel format for loading into the program.

5 Summary 

This blog brief the algorithm and design flow behind the machine learning for Zynq-7000 SoC platform. Especially how DPU is build and operated. It can help understand how programming language works, such as C++ or python.

The python environment PYNQ is open sourced, and it is high level synthesis over FPGA features including DPUs, very good platform for ML projects.

  • Sign in to reply
  • DAB
    DAB 9 months ago

    Nice update.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube