-
I am interested in using this software for generating kv260 bitstreams from Python code, and then using them as overlays in PYNQ - That is to say I hope to be able to run python programs on the Arm/PS side of the chip, and have it call/pass data to be executed on the PL/FPGA side that was generated with DaCe. I am new to HLS but OK with python, and there seem to be loads of options, and I want to be sure that I an going in the right direction before I start in earnest. For example I might want a matmul or matrix/vector dot product written in DaCe and compiled/synthesised ahead of time as a bitstream/overlay specifically for the xilinx kv260, and then to be able to load/call it from PYNQ on the device at runtime. Does this sort of thing seem a reasonable aspiration with DaCe as it stands right now? Are there any pitfalls I should be aware of? I already have an algo in python/numpy thst I wish to accelerate, and really don't want to have to learn C++/HLS if this library will do the job without too much of a performance/utilisation hit. Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
This sounds like the standard way we use DaCe to run FPGA codes (invoking a compiled bitstream from Python and letting it handle all the HLS and data copying). I would suggest to read the relevant documentation entries: Writing DaCe programs in Python, FPGA GEMM code sample written in numpy, FPGA optimization best practices, and if you wish to go low-level, how FPGA HLS code generation works (the whole page is a useful read in my opinion). For pitfalls, remember to change the |
Beta Was this translation helpful? Give feedback.
This sounds like the standard way we use DaCe to run FPGA codes (invoking a compiled bitstream from Python and letting it handle all the HLS and data copying).
I would suggest to read the relevant documentation entries: Writing DaCe programs in Python, FPGA GEMM code sample written in numpy, FPGA optimization best practices, and if you wish to go low-level, how FPGA HLS code generation works (the whole page is a useful read in my opinion).
For pitfalls, remember to change the
.dace.conf
file to the appropriate hardware string for the KV260 platform: https://spcldace.readthedocs.io/en/latest/source/config_schema.html#envvar-compiler.xilinx.platformand change the compilation mode to
hardware
…