Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for multi-packed DSP58s for VVUs #975

Closed
wants to merge 121 commits into from

Conversation

mmrahorovic
Copy link
Contributor

@mmrahorovic mmrahorovic commented Feb 8, 2024

This PR is a clean-up of PR #907 where the Thresholding related changes have been excluded.
Note: this PR depends on


  1. Adds support for utilizing multi-packed DSP58s for the HLS-based VVAU layer. For weights and activations that are between 4- and 8-bits wide (with the exception of 9-bits for activations for DSP58), the custom layer packs 2, 3 or 4 elements on the input datapath of the DSP to achieve multiple MACs per cycle per DSP58, which depends on the targeted board and quantization.

Functionalities to be added for the VVU

  • rtllib: RTL implementation for the DSP58-based VVU
    • See mvu_vvu_8sx9_dsp58
  • Custom-op for the new RTL component: see vectorvectoractivation_rtl.py
    • Code geneneration
    • IP-stitching
    • Resource estimations
    • Cycle estimations
  • Transformation to instantiate the newly created custom-op: see specialize_to_rtl_layers.py. Note, this is part of PR Support for packed MV(A)Us #794.

Tests

  • Test for the VVU custom-op & transformation: test_fpgadataflow_vvau_rtl

Outstanding bugs & features

Sorry, something went wrong.

mmrahorovic and others added 23 commits November 27, 2023 14:12
…oral mode for rtl sim
…nd limitation on max array indices in Verilator
…ation to select DSP48E2 explicitly again.
…ation to select DSP48E2 explicitly again.
…ize multi-packed DSPs in MVU/VVU more efficiently
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants