Skip to content

Latest commit

 

History

History
69 lines (64 loc) · 2.21 KB

compile.md

File metadata and controls

69 lines (64 loc) · 2.21 KB

1. Building The Host Program

mkdir build
cd build

For CentOS 7.x, enable devtoolset-7 for C++14 support with:

scl enable devtoolset-7 bash

and continue with:

cmake ..
make DeepPointV2FPGA

In order to automate the building modes, an script for PasteBin has been developed to automatically upload the log files generated by XOCC during the compilation and the linking processes to PasteBin.com. Just make sure that it is enabled in the main CMakeLists.txt and username, password, and API key of your PasteBin account are set.
The linking process requires a large amount of free memory(~30GB of ram for 8 parallel jobs) and close to 5GBs of disk space which takes almost 14 hours to complete with a i7-6700HQ machine.

2. Compiling FPGA Kernels

Considering that step one is already done and current directory is build. This step generates *.xo files needed for the linking process.
For SW-Emulation:

make compile_swemu

For HW-Emulation:

make compile_hwemu

For HW(system build for real FPGA):

make compile_hw

3. Linking FPGA Kernels

Considering that steps one and two are already done and current directory is build. This step generates requested *.xclbin file needed for the host program.
For SW-Emulation:

make link_swemu

For HW-Emulation:

make link_hwemu

For HW(system build for real FPGA):

make link_hw

4. Automated Build

The autobuild scripts are intended to make building process on an AWS instance easier. They compile and link the project consecutively and take log of each step in a text file. Finally, after finishing up, the instance would be powered off with the sudo poweroff command. (considering that the root user has no password)
For SW-Emulation:

bash autobuild_swemu

For HW-Emulation:

bash autobuild_hwemu

For HW(system build for real FPGA):

bash autobuild_hw

5. Launching The Host Program

Considering that steps one, two and three are already done, current directory is build and the default shell is bash. This command is the unified solution to launch the host program in sw-emu, hw-emu or hw modes.

sh LaunchDeepPointV2FPGA.sh

The launcher script forwards its arguments to the host program.