Vitis Unified Backend#1376
Conversation
…i wrapper for vitisUnified partial backend and build the skeleton code for other generation section
…tream and enable auto-restart feature on the kernel
… waiting ctrl system
|
An updated version of the tutorial can be found at Tanawin1701d/vitis_unified_backend_tutorial. I have successfully used it to build and run a Keras model with |
|
Some issues regarding the Vitis Unified backend: 1.
|
|
Hi @gflengas , thank you for your feedback.
I will keep you updated as I make progress. |
|
Hi! I am testing this VitisUnified PR in the context of an implementation-CI prototype, where the goal is to run a small end-to-end implementation flow and collect the generated reports/artifacts across hls4ml releases. For context, the branch I am testing from is: The test file is here The current test uses
The flow gets through HLS synthesis, cosimulation, and starts the Vitis hardware link. With This keeps repeating and does not seem to progress. Does anything in these settings look wrong, or should I change some part of the test setup for this flow? |
|
@marco66colombo Hi! Our fix was to export the env-variable ( |
|
Thanks @lolbraa, this worked! |
|
@marco66colombo Glad our frustrating experiences are not in vain! While I'm here, I'd like to get some general input from you guys. Now we're pondering (1) if the changes are welcome upstream, and (2) how we should go about creating a pull request. Do we just PR into VitisUnifiedClean on Tanawin1701d/hls4ml? And is it a deal-breaker if we haven't setup (or know how to, or have time to learn how to) set up unit tests for CI? |
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