-
Notifications
You must be signed in to change notification settings - Fork 484
Vitis Unified Backend #1376
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
base: main
Are you sure you want to change the base?
Vitis Unified Backend #1376
Conversation
…i wrapper for vitisUnified partial backend and build the skeleton code for other generation section
…t from insufficient buffer size
|
Thank you for this contribution! Could you please elaborate how this would compare against the Vitis Accelerator IP flow in #1134? Both PRs seem to add support for end-to-end deployment on ZCU devices. |
Why we can't completly reuse fifo depth optimization code from vitis
Vitis backend/Vitis Unified backend differeceslayer name diff in
|
| backend | loop_name (col 0) | layer_name (col 1) | <empty_cell> (col 2) | linked_file_name (col 3) |
|---|---|---|---|---|
| vitis | <loop_name> | layer14_out_U | <empty_cell> | chan_status6.csv |
| vitis unified | <loop_name> | layer14_out_i_U | <empty_cell> | chan_status6.csv |
- since vitis unified has the axi wrapper that convert axi memory map to axi stream, it makes layer_name (col 1) have extra (_i)
different place of HLS work directory
- hls internal project directory dir
- vitis backend locate the project @
<outputDir>/<project_name>_prj/solution1/.autopilot/db/channel_info.csv - vitis unified locate the project @
<<outputDir>>/unifiedWorkspace/<project_name>/unifiedPrj/hls/.autopilot/db/channel_info.csv
- vitis backend locate the project @
- the place is differnet because I think that gathering the HLS work place and linking work place in the dedicated directory to prevent it polutes other HLS4ML file structures. And, I think it would be easier for managing the project's subsystem using Vitis Unified Ide.
summarize
- from layer name and work dir diff make Vitis Unified Backend must have its own
get_vitis_optimized_fifo_depths
Briefly compare with Vitis Accelerator IP Flow
differencesthe linking progress
the kernel
file structure and configuration support
multigraph support
|
Thank you for your comment. The one above is a comparison with the Vitis accelerator IP flow. If there are any aspects you would like me to elaborate on, please let me know. |
Description
VitisUnified backend
Motivation
Summarized features
/tools/Xilinx/Vitis/2023.2/base_platformshttps://github.com/Xilinx/Vitis-Tutorials/tree/2025.1/Vitis_Platform_Creation/Design_Tutorials/01-Edge-KV260Type of change
For a new feature or function, please create an issue first to discuss it
with us before submitting a pull request.
Note: Please delete options that are not relevant.
Tests
test/pytest/test_backend/vitis_unified.pywith 4 main aspectbridge test
VitisUnifiedwithVitiscosimulation
fifo test optimization
hardware test
test_gen_unifiedintest reproduce
test/pytest/test_backend/vitis_unified.pyfiletest_gen_unified), you should specify XPFM_PATH(path to xpfm file) to the correct place.LOG_STD == True, HLS4ML will give the HLS+linker compiling message @ console.<output_project_dir>/<prefix>_err.logor<output_project_dir>/<prefix>_out.logTest Configuration:
Checklist
pre-commiton the files I edited or added.implementation detail
file generation(HLS4ML generated file) prepare file for system Generation and pynq driversynthesis Kernel(Synthesis Kernel (v++)) do c-synthesis for HLS4ML modellinker(Linker+vivado+Bitfile+hwh)File structure
template structure
hls4ml/templates/vitis_unifiedoutput file structure
configuration
input_typeandoutput_typeare support only float and double. And it must be match{in/out}_stream_buf_sizeunit is in amount elements of thennet::arrayxpfmPath
note to developer
unifiedWorkspace. The IDE will automatically detect your projectinput_type/output_typewas set totype x(double or float), you cannot predict with numpy array with different input/output typedepthargument @axi_master write@<project_name>_dm.cppmust be match of the array size generated the output array@ ````myproject_test.cpp``` for cosim and csim.<project_folder>/unifiedWorkspace/linker/_x/link/vivado/vpl/prjnote to tutorial
https://github.com/Tanawin1701d/vitisUnifiedTutorialgenerated warning
unused parameter,deprecated pragma,dataflow conflict