Main repository of the HSA-on-FPGA demonstrator project. The design uses the LibHSA library described by Reichenbach et al. to connect an x86 host CPU via David de la Chevallerie et al.'s PCIe interface to a custom image processing accelerator. All kernels are dispatched according to the HSA Foundation standards.
- Vivado (tested with 2017.2 to 2018.3)
- GIT LFS for the compiler submodule https://git-lfs.github.com
- TaPaSCo prerequisites:
- Ubuntu 16.04/18.04
sudo apt-get -y update && sudo apt-get -y install unzip git zip findutils curl build-essential linux-headers-generic python cmake libelf-dev libncurses-dev git rpm curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java sdk install sbt
- Fedora 27/28/29
sudo dnf -y install which unzip git zip findutils kernel-devel make gcc gcc-c++ elfutils-libelf-devel cmake ncurses-devel python libatomic git rpm-build curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java sdk install sbt
- Xilinx Virtex-7 VC709 FPGA
- AMD Ryzen CPU
- AMD Carrizo APU
- Intel Haswell CPU
- Make sure all submodules are correctly initialized
- Install both custom MIPS compiler toolchains
- Set the paths to both installed compilers in
LibHSA/global_conf.sh
(MIPS(32/64)_GCC_PATH) - Setup Tapasco with
make install
- compile the x86 host program with
make software
- create the FPGA bitstream with
make hardware
- setup the Tapasco environment
source Tapasco/setup.sh
- load driver and bitstream
tapasco-load-bitstream --reload-driver vc709_bitstream.bit
- run the host program
./imgproc --operation=GAUSS3x3 image.png
More options of the host program can be explored with ./imgproc --help