neoskypig / opencl-bsp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction
This package is the BSP for the DCP accelerator card.  Please see the user guide
for more detailed information.

1.  HW Requirements
	Intel Xeon processor
	64 gigabytes (GB) of RAM(large designs may require more)
	A PCI Express x8 Slot
	25 GB of hard drive space
	CentOS 7.3 with the default Linux kernel 3.10

2.  Software for FPGA/OpenCL compilation:
  dcp_s10 | Statix 10 
	Quartus Prime Pro Edition 18.0.1 build 261
	Intel FPGA SDK for OpenCL Pro Edition 18.0.1 build 261
  
  dcp_a10 | Arria 10
  Patched version of Quartus Prime Pro contains bug-fixes for Arria 10 Partial Reconfiguration
	Quartus Prime Pro Version 17.1.1 Build 273 12/19/2017 Patches 1.36,1.38 SJ Pro Edition
	Intel FPGA SDK for OpenCL Pro Edition 17.1.1 build 273

3.  Software for OpenCL runtime
	system packages
		sudo yum -y install cmake autoconf automake libxml2 libxml2-devel json-c-devel boost ncurses ncurses-devel ncurses-libs boost-devel libuuid-devel
		sudo yum -y install epel-release
		sudo yum -y install dkms
	OPAE driver
		opae-intel-fpga-drv-0.3.0.x86_64.rpm
	OPAE software library
		opae-src-0.3.0.tar.gz
	Intel FPGA Runtime Environment for OpenCL Linux x86-64 RPM
		aocl-pro-rte-18.0-189.x86_64.rpm

4.  Note about initializing DCP for OpenCL:
	must do "aocl program acl0 kernel.aocx" first
		OpenCL runtime must be able to find BSP in FPGA or it will not run
		"aocl program" has a special flow to force load aocx binary when there is a non-OpenCL green bit stream loaded
		OpenCL programming/operation will work normally after this

5.  Troubleshooting
	make sure aocl diagnose works!
		if you see something like this "Error initializing DMA: 1"
		that means permissions for DMA buffers are not setup correctly
		run the bsp_install_location/OpenCL_bsp_dcp/linux64/libexec/setup_permissions.sh script
	
6.  Quick start:

a.  Setting up BSP for AOCX compilation
	cd /path/to/put/bsp/
	tar xzf dcp_OpenCL_bsp_*.tar.gz
	export AOCL_BOARD_PACKAGE_ROOT=/path/to/put/bsp/dcp_OpenCL_bsp
	aoc -list-boards
	#make sure you see at least 1 DCP board in the list
	#to use arc to compile, get these resources
  dcp_s10 | Stratix 10
	arc shell acl/18.0.1/261,acds/18.0/189,qedition/pro,adapt/18.0.1/261,python
  
  dcp_a10 | Arria 10
	arc shell acl/17.1.1,acds/swip_apps/avl_vm/acds_patched/17.1.1/acds,qedition/pro,adapt/18.1,python

	aoc vector_add.cl
	#you can also use '--board bsp_board_name' to specify a specific board variant

b.  Running OpenCL host applications  tions with DCP and OPAE software
#refer to DCP Quick Start Guide for flashing blue bits and make sure nlb0 test works

##Please make sure that the board has been flashed with the BBS.  Driver won't work without it.

#Here are specific instructions on getting runtime software running with OpenCL on DCP
#Some of these instructions are specific to OpenCL
#install needed system packages
sudo yum -y install cmake autoconf automake libxml2 libxml2-devel json-c-devel boost ncurses ncurses-devel ncurses-libs boost-devel libuuid-devel
sudo yum -y install epel-release
sudo yum -y install dkms
sudo rpm -i $DCP_LOC/sw/opae-intel-fpga-drv-0.3.0.x86_64.rpm

#setup opae
cd sw_install_location
tar xzf $DCP_LOC/sw/opae-src-0.3.0-*.tar.gz
export OPAE_LOC=`pwd`/opae-0.3.0
mkdir build && cd build
cmake .. -DINTEL_FPGA_API_VER_MAJOR=0 -DINTEL_FPGA_API_VER_MINOR=3 -DINTEL_FPGA_API_VER_REV=0 -DBUILD_ASE=ON
make -j4

#setup permissions.  run this shell script.  read shell script for details on
#permissions settings
bsp_install_location/OpenCL_bsp_dcp/linux64/libexec/setup_permissions.sh

#setup OpenCL
sudo rpm -i /path_to_OpenCL_rte_rpm/aocl-pro-rte-17.1.1-273.x86_64.rpm
mkdir bsp_install_location
tar xzf /path_to_bsp_package/dcp_OpenCL_bsp_*.tar.gz

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OPAE_LOC/build/lib
export AOCL_BOARD_PACKAGE_ROOT=bsp_install_location/dcp_OpenCL_bsp
export OPAE_INSTALL_PATH=$OPAE_LOC/build/
source /opt/altera/aocl-rte/init_OpenCL.sh

#run first OpenCL programming and diagnose
aocl program acl0 hello_world.aocx
aocl diagnose
aocl diagnose acl0

#download vector add from altera.com and run it
tar xzf path_to_download/exm_OpenCL_vector_add_x64_linux.tgz
cp path_to_aocx_file/vector_add.aocx /vector_add/bin
cd vector_add
make
cd bin
./host

About


Languages

Language:SystemVerilog 47.3%Language:C++ 31.4%Language:C 12.4%Language:Shell 1.9%Language:Tcl 1.8%Language:Makefile 1.5%Language:Verilog 1.2%Language:Python 0.9%Language:CMake 0.8%Language:Gnuplot 0.6%Language:Assembly 0.2%