This README file contains the following sections:
- OVERVIEW
- DESIGN FILE HIERARCHY
- COMPILATION AND EXECUTION
This directory provides database functional implementation for gather using interleaving and streaming.
- Interleaving: Data A is equally interleaved across # HBM .
- Streaming: Data in/out is being streamed while excuting kernel operations.
The kernel is for random access to database across HBMs. by setting opmode argument in host code, you can select to run the required operation. when each operation is done, the output will write back data out to DDR. Host code can check the result.
Host code distribute data(A) equally across HBMs and block streaming data in/out while executing kernel from host code. use ping-pong buffer architecture, you can transfer data to and from FPGA simultaneously and also perform computations during the data transfers. Performing all three of these operations at the same time allows you to keep the FPGA busy and take full advantage of all of the hardware on your system.
Files | Description |
---|---|
makefile | make file |
src/main.cpp | Host code with main function |
src/oclaccel.cpp | For host code |
kernel/omx.cpp | Kernel top level |
kernel/gather.cpp | Kernel sub-function Gather |
scripts/user_tcl_file.tcl | script used to insert RAMA IP |
Set variable USER_SCRIPT_PATH to full path folder of user_tcl_file.tcl
Set up environment for Xilinx SDx release
$source <SDX_INSTALL_DIR>/settings64.sh
Build host code for omx
make host
You can also build xclbin for different flows, including sw_emu, hw_emu and hw using make command.
make FLOW=hw xbin
After you have compiled host code and xclbin, you can run designs using command line like below:
- sw emulation: #pu=16 #hbm=8
./omx -xclbin omx_U280_sw.xclbin -mode sw_emu -pu 16 -hbm 8
- hw: #pu=16 #hbm=4
./omx -xclbin omx_U280_hw.xclbin -pu 16 -hbm 4
Argument | Value | Description | Default |
---|---|---|---|
-pu | 16/8/4/2/1 | Select #PU | 16 |
-hbm | 16/8/4/2/1 | HBM counts | 16 |
-mode | sw_emu/cpu/other | Select mode | other |
-cb | 1/0 | Enable callback function | 0 (disabled callback function) |
-pc | 1/0 | Enable Pseudo-Channel | 1 |
Board | Device Name | Software Version |
---|---|---|
Alveo U280 | xilinx_u280-es1_xdma_201830_1 | SDAccel 2018.3 |