OpenCAPI Transprecision Acceleration Framework, abbreviated as OC-Accel-TP, is a framework that helps you implement your FPGA acceleration solutions with OpenCAPI technology.
The framework is a fork of OC-Accel Framework, that also includes some examples with transprecision capabilities. The concept of transprecision computing is an initiative of OPRECOMP H2020 project.
https://opencapi.github.io/oc-accel-doc/
- On a X86 server:
- Install Xilinx tools (tested with Vivado 2019.2) with the desired fpga family (used by the card you want to test).
- set XILINX_ROOT and XILINXD_LICENSE_FILE accordingly and source Xilinx setting shell:
export XILINX_ROOT=/opt/Xilinx/xxxx.y # setup your xilinx tools install dir. eg xxxx.y = 2019.2 export [email protected] # Vivado license . $XILINX_ROOT/settings64.sh
- On a POWER9 server:
- Install lib-ocxl on server:
sudo apt-get install libocxl-dev # for Ubuntu sudo yum install libocxl-devel # for RHEL
- Install lib-ocxl on server:
- Clone OpenCAPI Simulation Engine and OC-Accel framework
git clone https://github.com/OpenCAPI/ocse.git git clone https://github.com/OpenCAPI/oc-accel.git cd oc-accel make snap_config ## this uses an opensource Kconfig menu
- In the menu:
- Select a card and an example (eg: hls_helloworld_1024) to test (use space bar)
- Exit the menu
- Now run a simulation on X86 with default xsim simulator
make sim ## (or make sim_tmux if no xterm available)
- In the terminal run:
snap_helloworld_1024 # the default help will propose the simulation example
- Run the proposed test and check it passes ok
- To generate the flash content run:
make image
This produces a .bin file (it is the full description of the FPGA content) to be loaded in memory of the chosen OC card plugged in a POWER9 server. File is located in ~/oc-accel/hardware/build/Images/
- Card flash programming:
- Card is new : Check card supplier procedure. Some allow PCIe flash programming, other require JTAG probe.
- Card is already programmed with a previous OC binary:
- Transfer the .bin file into the POWER server by any mean (scp, ftp, ...)
- Use OpenCAPI Utils tools to load the oc_date_XX_hls_helloworld_1024_YY_OC-card_YY.bin file.
sudo git clone https://github.ibm.com/OC-Enablement/oc-utils.git sudo make install # default installation
- Flash the card memory.
sudo oc-flash-script oc_date_XX_hls_helloworld_1024_YY_OC-card_YY.bin
- Install oc-accel on the POWER server and compile code:
git clone https://github.com/OpenCAPI/oc-accel.git cd oc-accel make all
- Run the default test:
./actions/hls_helloworld_1024/tests/hw_test.sh
- Check results
This is an open-source project. We greatly appreciate your contributions and collaboration. Before contributing to this project, please read and agree to the rules in
To simplify the sign-off, you may want to create a ".gitconfig" file in you home by executing:
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
Then, for every commit, use git commit -s
to add the "Signed-off by ..." message.
By default the git repository is read-only. Users can fork the snap repository, make the changes there and issue a pull request. Even members with write access to this repository can't commit directly into the protected master branch. To contribute changes, please create a branch, make the changes there and issue a pull request.
Pull requests to merge into the master branch must be reviewed before they will be merged.