In order to run the provided introductory notebooks we have designed a few overlays, and we have included the source files to rebuild them in this folder. In particular, the overlays are obtained by combining a few ad-hoc kernels, along with a selected number of examples from the Vitis Accel Examples repository.
There are a total of four overlays included in this repository:
-
Introduction: this overlay includes the vector addition kernel from the Vitis Accel Examples' hello world application, and the vector multiplication kernel from the SLR Assign application. It is used for the introduction notebooks.
-
Kernel Optimizations: this overlay contains the vector addition and vector multiplication kernels (using streams) from the Vitis Accel Examples' Stream Kernel to Kernel Memory Mapped application, as well as a wide vector addition kernel that uses a a 512 bit datapath and has been specifically developed for this overlay, and whose source code is available here. This last kernel is duplicated in the design, with one version using only a single memory bank, and the second version using a different memory bank for each buffer. It is used for the kernel optimization notebooks.
-
Advanced Features: this overlay includes a vector addition and matrix multiplication kernels specifically developed for this overlay, for which the source code is available here. It is used for the advanced features notebooks.
-
Data Compression: this overlay includes LZ4 and zlib compression kernels from the Vitis Data Compression Library. It is used for the data compression notebooks.
Currently, we distribute overlays only for the following Alveo boards and shells:
Shell | Board |
---|---|
xilinx_u200_xdma_201830_2 | Xilinx Alveo U200 |
xilinx_u250_xdma_201830_2 | Xilinx Alveo U250 |
xilinx_u280_xdma_201920_1 | Xilinx Alveo U280 |
xilinx_u50_xdma_201920_1 | Xilinx Alveo U50 |
xilinx_aws-vu9p-f1_dynamic_5_0 | Amazon AWS F1 |
Designs are built using Vitis 2019.2. The Kernel Optimization and Data Compression overlays are not available for the Alveo U280 and U50.
Make sure you have cloned the Alveo-PYNQ repo using the --recursive
option,
so that the included git submodules are also pulled at checkout.
In case you haven't, you can check them out at a later stage by typing:
git submodule update --init --recursive
To build xclbins for a new shell, move to the overlays
folder and run the
make build
command, passing the appropriate DEVICE
:
cd overlays
make build DEVICE=<target-shell>
You can then do make install
to copy the overlays in the appropriate
notebooks folder.
If you want to do everything in one go (build
and install
):
make DEVICE=<target-shell>
To install built xclbins in a specific path (different from the default one):
make install INSTALL_PATH=<target-path>
It is expected that the target path contains the appropriate notebooks folders. Otherwise, the install step will not be carried out.
Once you have synthesized your overlays, you can use them by first getting the
notebooks avoiding overlay lookup (Refer to pynq get-notebooks --help
for
info on the used options.)
pynq get-notebooks --from-package pynq_alveo_examples --ignore-overlays \
--path <target-path>
And then copy the overlays in the target directory, using the make install
command
make install INSTALL_PATH=<target-path>/pynq-notebooks