element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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 & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • 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
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • 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
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet & Tria Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZedBoard Hardware Design Zedboard 512x512 matrices, % utilization problem
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 3 replies
  • Subscribers 341 subscribers
  • Views 798 views
  • Users 0 members are here
Related

Zedboard 512x512 matrices, % utilization problem

jmales
jmales over 10 years ago

My objective is to read seven 512X512 float matrices from the SD card to the DDR memory (step accomplished already with each matrix occupying around 1Mb), then pass them from DDR to my custom IP block (I'm doing this transition with AXI DMA block), normalize them innside the custom IP block and then output them to DDR memory (also with the AXI DMA block).

Well, I'm doing my custom IP block in Vivado HLS and following the steps that I saw in this Xilinx manual (which shall be the ideal way to do this since its from Xilinx): http://www.xilinx.com/support/documentation/application_notes/xapp1170-zynq-hls.pdf

It works for a 32x32 matrix.

But unfortunately, when increasing the matrix dimensions to 512x512, even doing only a multiplication by 2.0 of each matrix' parameter, the BRAM_18K utilization is 365%!!

What can I do do brutaly decrease the % of resources used? I'll need to do lots of operations to the matrices inside the custom IP block and if a simple multiplication by 2.0 uses 365% of BRAMs a solution that decreases the amount of this example to 80/90% is not good enough. What I'm looking for is a solution that sets the BRAM utilization to around 5% in this example.

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 10 years ago

    This question is Xilinx tool related and is probably better targeted to one of the Xilinx Community forums, perhaps the HLS forum in particular: http://forums.xilinx.com/t5/High-Level-Synthesis-HLS/bd-p/hls

     

    That said, as I am sure you know, multiplying 512 x 512 float is a pretty hefty operation and you just may need to target a Zynq device with more BRAM than the 7020 device on the ZedBoard. You might want to look at a PicoZed 7030 or the one of the Zynq MMP or Mini-ITX boards with a 7045 or 70100 device.

     

    -Gary

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jmales
    0 jmales over 10 years ago in reply to Former Member

    I also tried posting there but that community is really slow and no one answers...

    So do you mean that I can't even multiply 512x512 matrices in a Zedboard in your opinion? So what's the FPGA side of the Zedboard for? I see no use for it if it can't even do a simple operation (in the software world as you know, 512x512 matrices' operations are considered very very simple ones)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zedhed
    0 zedhed over 10 years ago

    Hi jmales,

    Would you please post the link to your thread in the Xilinx forums so that others might follow it upon stumbling across this thread?

    To be fair to those who may stumble across this post here, I think it is important to put things into perspective here.  Performing this operation in the software word, a 512x512 matrix multiply is straightforward but not a computationally fast task.

    According to this independent source, it can take on the order of 12,805,000us to complete this operation on a Pentium 4 processor:

    http://csg.csail.mit.edu/pubs/memos/Memo-503/memo503.pdf

    Since the computation can be parallelized, the computation time could potentially be reduced to a fraction of the software compute time within a Programmable Logic device (like the Zynq 7020 device available on ZedBoard).  To fully unroll the loops and pipeline the datapath can require a lot of resources to accomplish this.  You might be able to adjust the utilization of the programmable logic resources to reuse some portions of the logic but there will be computation tradeoffs involved with reducing the device utilization.

    I suggest taking a look at our "Designing Accelerators for the Zynqu00AE-7000 All Programmable SoC" course on the training page as an introduction to this type of problem.

    http://microzed.org/support/trainings-and-videos

    This might help you see if something like Vivado HLS pragmas might help you solve your problem with acceptable results.  We ran into a (loosely) similar device utilization problem when targeting those labs from ZedBoard 7020 over to a MicroZed 7010 but were able to work around them by constraining the design with "block factor" directives for array_partitioning.  I don't think this will get you to 5% BRAM utilization, but it will reduce the utilization of BRAM dramatically.  Take a look at the Vivado HLS user guide for more information on the ARRAY_PARTITION directive that we used.

    Keep in mind, as Gary suggested, if your computation problem is sufficiently complex, you might simply need a larger device than Zynq-7020 in order to have enough Programmable Logic resources available.

    Regards,

    -Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • 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