-
Notifications
You must be signed in to change notification settings - Fork 25
Talks and Tutorials
During ARC2019, we gave a tutorial on TaPaSCo, introducing the most important concepts as well as the design flow for composing and interfacing with an FPGA-based accelerator SoC.
The slides are available for download.
We also recorded the whole tutorial, a playlist with videos on the different steps of the TaPaSCo design flow and the setup of TaPaSCo itself is available on our Youtube channel.
We used the Docker image sommerlukas/tapasco-tutorial:arc2019
for the tasks, it's still available for download on Dockerhub.
A presentation about using TaPaSCo on the AMD Versal architecture, including AI Engines (AIE) for high-performance compute, Queue Direct Memory Access (QDMA) for efficient data streaming, and Multi-rate MAC (MRMAC) for high-speed networking is available on YouTube.
Here, we provide the commands for creating a bitstream of the arrayinit
HLS core for the Alveo U280. After bitstream creation, we build the runtime example application.
Requirements: Rocky Linux 8, vivado
and vitis_hls
on the path, FPGA inserted and cable driver installed.
# setup
# install requirements
dnf -y install which java-openjdk findutils kernel-devel make gcc gcc-c++ elfutils-libelf-devel cmake python3 libatomic git rpm-build ncurses-compat-libs
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o /tmp/rustup.sh && sh /tmp/rustup.sh -y
source ~/.cargo/env
git clone https://github.com/esa-tu-darmstadt/tapasco.git
mkdir workspace
cd workspace
../tapasco/tapasco-init.sh
source tapasco-setup.sh
tapasco-build-toolflow
# bitstream creation (inside workspace)
source tapasco-setup.sh
tapasco hls arrayinit -p AU280 --skipEvaluation
tapasco -v --maxThreads 3 compose [arrayinit x 1] @ 100 MHz -p AU280
# wait for synthesis to finish (a bit over one hour on my machine)
tapasco-load-bitstream compose/axi4mm/AU280/arrayinit/001/100.0/axi4mm-AU280--arrayinit_1--100.0.bit
reboot # reboot required because PCIe enumeration does not work after the first load
# runtime
cd workspace
source tapasco-setup.sh
tapasco-build-libs # compile kernel module and runtime (including examples)
tapasco-load-bitstream compose/axi4mm/AU280/arrayinit/001/100.0/axi4mm-AU280--arrayinit_1--100.0.bit --mode hotplug # load tlkm kernel module
./build/examples/C++/arrayinit/arrayinit-cpp # this is the compiled C++ runtime example
# done!