Coder Social home page Coder Social logo

hsa-on-fpga / libhsa Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 4.0 229 KB

HSA compatible dispatch infrastructure for FPGAs

License: GNU General Public License v3.0

Makefile 2.22% Shell 1.50% VHDL 72.75% Tcl 3.70% Stata 2.43% C 14.32% Assembly 0.57% Objective-C 0.51% C++ 2.00%
fpga hsa libhsa mips

libhsa's Introduction

HSA-on-FPGA

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.

Prerequisites

  • 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

Tested Hardware

  • Xilinx Virtex-7 VC709 FPGA
  • AMD Ryzen CPU
  • AMD Carrizo APU
  • Intel Haswell CPU

Install

  1. Make sure all submodules are correctly initialized
  2. Install both custom MIPS compiler toolchains
  3. Set the paths to both installed compilers in LibHSA/global_conf.sh (MIPS(32/64)_GCC_PATH)
  4. Setup Tapasco with make install

setup image processing test case

  • compile the x86 host program with make software
  • create the FPGA bitstream with make hardware

running a test case

  1. setup the Tapasco environment source Tapasco/setup.sh
  2. load driver and bitstream tapasco-load-bitstream --reload-driver vc709_bitstream.bit
  3. run the host program ./imgproc --operation=GAUSS3x3 image.png

More options of the host program can be explored with ./imgproc --help

libhsa's People

Contributors

jahofmann avatar marc-reichenbach avatar phholzinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.