Skip to content

Commit

Permalink
Updated README and Makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
heeran-xilinx committed May 30, 2019
1 parent bfa22a8 commit e7cc52c
Show file tree
Hide file tree
Showing 26 changed files with 125 additions and 131 deletions.
10 changes: 8 additions & 2 deletions getting_started/README.md
Expand Up @@ -40,6 +40,7 @@ Example | Description | Key Concepts / Keywords
[host/hbm_bandwidth/][]|This is a HBM bandwidth check design. Design contains 8 compute units of a kernel which has access to all HBM banks (0:31). Host application allocate buffer into all HBM banks and run these 8 compute units concurrently and measure the overall bandwidth between Kernel and HBM Memory.|
[host/hbm_simple/][]|This is a simple example of vector addition to describe how to use HLS kernels with HBM (High Bandwidth Memory) for achieving high throughput.|__Key__ __Concepts__<br> - High Bandwidth Memory<br> - Multiple HBM Banks<br>__Keywords__<br> - HBM<br> - XCL_MEM_TOPOLOGY<br> - cl_mem_ext_ptr_t
[host/host_global_bandwidth/][]|Host to global memory bandwidth test|
[host/host_global_bandwidth_5.0_shell/][]|Host to global memory bandwidth test for 5.0 shell|
[host/kernel_swap_c/][]|This example shows how host can swap the kernels and share same buffer between two kernels which are exist in separate binary containers. Dynamic platforms does not persist the buffer data so host has to migrate data from device to host memory before swapping the next kernel. After kernel swap, host has to migrate the buffer back to device.|__Key__ __Concepts__<br> - Handling Buffer sharing across multiple binaries<br> - Multiple Kernel Binaries<br>__Keywords__<br> - clEnqueueMigrateMemObjects()<br> - CL_MIGRATE_MEM_OBJECT_HOST
[host/multiple_cus_asymmetrical/][]|This is simple example of vector addition to demonstrate how to connect each compute unit to different banks and how to use these compute units in host applications|__Key__ __Concepts__<br> - Multiple Compute Units<br>__Keywords__<br> - #pragma HLS PIPELINE
[host/multiple_devices_c/][]|This example show how to take advantage of multiple FPGAs on a system. It will show how to initialized an OpenCL context, allocate memory on the two devices and execute a kernel on each FPGA.|__Key__ __Concepts__<br> - OpenCL API<br> - Multi-FPGA Execution<br> - Event Handling<br>__Keywords__<br> - cl_device_id<br> - clGetDeviceIDs()
Expand All @@ -57,8 +58,10 @@ Example | Description | Key Concepts / Keywords
[kernel_to_gmem/custom_datatype_c/][]|This is simple example of RGB to HSV conversion to demonstrate Custom DATA Type usages in C Based Kernel. Xilinx HLS Compiler Supports Custom Data Type to use for operation as well as Memory Interface between Kernel and Global Memory.|__Key__ __Concepts__<br> - Custom Datatype<br>__Keywords__<br> - struct<br> - #pragma HLS data_pack<br> - #pragma HLS LOOP_TRIPCOUNT
[kernel_to_gmem/full_array_2d_c/][]|This is a simple example of accessing full data from 2d array|__Key__ __Concepts__<br> - 2D data full array Access<br>
[kernel_to_gmem/full_array_2d_ocl/][]|This is a simple example of accessing full data from 2d array|__Key__ __Concepts__<br> - 2D data full array Access<br>
[kernel_to_gmem/gmem_2banks_c/][]|This example of 2ddr to demonstrate on how to use 2ddr DSA. How to create buffers in each DDR.|__Key__ __Concepts__<br> - Multiple Banks<br>__Keywords__<br> - max_memory_ports<br> - misc:map_connect<br> - XCL_MEM_DDR_BANK0<br> - XCL_MEM_DDR_BANK1<br> - XCL_MEM_DDR_BANKx<br> - HLS Interface m_axi bundle
[kernel_to_gmem/gmem_2banks_ocl/][]|This example of 2ddr to demonstrate on how to use 2ddr DSA. How to create buffers in each DDR.|__Key__ __Concepts__<br> - Multiple Banks<br>__Keywords__<br> - max_memory_ports<br> - misc:map_connect<br> - XCL_MEM_DDR_BANK0<br> - XCL_MEM_DDR_BANK1<br> - XCL_MEM_DDR_BANKx
[kernel_to_gmem/gmem_2banks_c/][]|This example of 2ddr to demonstrate on how to use 2ddr DSA. How to create buffers in each DDR.|__Key__ __Concepts__<br> - Multiple Banks<br>__Keywords__<br> - max_memory_ports<br> - misc:map_connect<br> - HLS Interface m_axi bundle
[kernel_to_gmem/gmem_2banks_c_5.0_shell/][]|This example of 2ddr to demonstrate on how to use 2ddr DSA. How to create buffers in each DDR.|__Key__ __Concepts__<br> - Multiple Banks<br>__Keywords__<br> - max_memory_ports<br> - misc:map_connect<br> - HLS Interface m_axi bundle
[kernel_to_gmem/gmem_2banks_ocl/][]|This example of 2ddr to demonstrate on how to use 2ddr DSA. How to create buffers in each DDR.|__Key__ __Concepts__<br> - Multiple Banks<br>__Keywords__<br> - max_memory_ports<br> - misc:map_connect
[kernel_to_gmem/gmem_2banks_ocl_5.0_shell/][]|This example of 2ddr to demonstrate on how to use 2ddr DSA. How to create buffers in each DDR.|__Key__ __Concepts__<br> - Multiple Banks<br>__Keywords__<br> - max_memory_ports<br> - misc:map_connect
[kernel_to_gmem/kernel_global_bandwidth/][]|Bandwidth test of global to local memory.|
[kernel_to_gmem/memcoalesce_hang_c/][]|This example shows Memory Coalesce Deadlock/Hand situation and how to handle it. User can switch between BAD and GOOD case using makefile variable KFLOW.|__Key__ __Concepts__<br> - Memory Coalesce<br> - Memory Deadlock/Hang<br> - Multiple Interfaces<br>__Keywords__<br> - HLS INTERFACE<br> - bundle<br> - m_axi
[kernel_to_gmem/plram_access_c/][]|This example shows the usage of PLRAM and how to use it with simple matrix multiplication (Row x Col).|__Key__ __Concepts__<br> - SDx Memory Hierarchy<br> - PLRAMs<br>__Keywords__<br> - PLRAM
Expand Down Expand Up @@ -130,6 +133,7 @@ Example | Description | Key Concepts / Keywords
[host/hbm_bandwidth/]:host/hbm_bandwidth/
[host/hbm_simple/]:host/hbm_simple/
[host/host_global_bandwidth/]:host/host_global_bandwidth/
[host/host_global_bandwidth_5.0_shell/]:host/host_global_bandwidth_5.0_shell/
[host/kernel_swap_c/]:host/kernel_swap_c/
[host/multiple_cus_asymmetrical/]:host/multiple_cus_asymmetrical/
[host/multiple_devices_c/]:host/multiple_devices_c/
Expand All @@ -149,7 +153,9 @@ Example | Description | Key Concepts / Keywords
[kernel_to_gmem/full_array_2d_c/]:kernel_to_gmem/full_array_2d_c/
[kernel_to_gmem/full_array_2d_ocl/]:kernel_to_gmem/full_array_2d_ocl/
[kernel_to_gmem/gmem_2banks_c/]:kernel_to_gmem/gmem_2banks_c/
[kernel_to_gmem/gmem_2banks_c_5.0_shell/]:kernel_to_gmem/gmem_2banks_c_5.0_shell/
[kernel_to_gmem/gmem_2banks_ocl/]:kernel_to_gmem/gmem_2banks_ocl/
[kernel_to_gmem/gmem_2banks_ocl_5.0_shell/]:kernel_to_gmem/gmem_2banks_ocl_5.0_shell/
[kernel_to_gmem/kernel_global_bandwidth/]:kernel_to_gmem/kernel_global_bandwidth/
[kernel_to_gmem/memcoalesce_hang_c/]:kernel_to_gmem/memcoalesce_hang_c/
[kernel_to_gmem/plram_access_c/]:kernel_to_gmem/plram_access_c/
Expand Down
5 changes: 0 additions & 5 deletions getting_started/debug/debug_profile_c/sdaccel.ini

This file was deleted.

2 changes: 2 additions & 0 deletions getting_started/host/README.md
Expand Up @@ -16,6 +16,7 @@ Example | Description | Key Concepts / Keywords
[hbm_bandwidth/][]|This is a HBM bandwidth check design. Design contains 8 compute units of a kernel which has access to all HBM banks (0:31). Host application allocate buffer into all HBM banks and run these 8 compute units concurrently and measure the overall bandwidth between Kernel and HBM Memory.|
[hbm_simple/][]|This is a simple example of vector addition to describe how to use HLS kernels with HBM (High Bandwidth Memory) for achieving high throughput.|__Key__ __Concepts__<br> - High Bandwidth Memory<br> - Multiple HBM Banks<br>__Keywords__<br> - HBM<br> - XCL_MEM_TOPOLOGY<br> - cl_mem_ext_ptr_t
[host_global_bandwidth/][]|Host to global memory bandwidth test|
[host_global_bandwidth_5.0_shell/][]|Host to global memory bandwidth test for 5.0 shell|
[kernel_swap_c/][]|This example shows how host can swap the kernels and share same buffer between two kernels which are exist in separate binary containers. Dynamic platforms does not persist the buffer data so host has to migrate data from device to host memory before swapping the next kernel. After kernel swap, host has to migrate the buffer back to device.|__Key__ __Concepts__<br> - Handling Buffer sharing across multiple binaries<br> - Multiple Kernel Binaries<br>__Keywords__<br> - clEnqueueMigrateMemObjects()<br> - CL_MIGRATE_MEM_OBJECT_HOST
[multiple_cus_asymmetrical/][]|This is simple example of vector addition to demonstrate how to connect each compute unit to different banks and how to use these compute units in host applications|__Key__ __Concepts__<br> - Multiple Compute Units<br>__Keywords__<br> - #pragma HLS PIPELINE
[multiple_devices_c/][]|This example show how to take advantage of multiple FPGAs on a system. It will show how to initialized an OpenCL context, allocate memory on the two devices and execute a kernel on each FPGA.|__Key__ __Concepts__<br> - OpenCL API<br> - Multi-FPGA Execution<br> - Event Handling<br>__Keywords__<br> - cl_device_id<br> - clGetDeviceIDs()
Expand All @@ -40,6 +41,7 @@ Example | Description | Key Concepts / Keywords
[hbm_bandwidth/]:hbm_bandwidth/
[hbm_simple/]:hbm_simple/
[host_global_bandwidth/]:host_global_bandwidth/
[host_global_bandwidth_5.0_shell/]:host_global_bandwidth_5.0_shell/
[kernel_swap_c/]:kernel_swap_c/
[multiple_cus_asymmetrical/]:multiple_cus_asymmetrical/
[multiple_devices_c/]:multiple_devices_c/
Expand Down
1 change: 0 additions & 1 deletion getting_started/host/hbm_simple/README.md
Expand Up @@ -11,7 +11,6 @@ This is a simple example of vector addition to describe how to use HLS kernels w
Platform | Board | Software Version
---------|-------------------|-----------------
xilinx_u280_xdma|Xilinx Alveo U280|SDx 2019.1
xilinx_u250_qdma|Xilinx Alveo U250|SDx 2019.1
xilinx_u280-es1_xdma|Xilinx Alveo U280|SDx 2019.1


Expand Down
4 changes: 2 additions & 2 deletions getting_started/host/host_global_bandwidth_5.0_shell/Makefile
Expand Up @@ -125,7 +125,7 @@ ifeq ($(TARGET),$(filter $(TARGET),sw_emu hw_emu))
else
./$(EXECUTABLE) $(XCLBIN)/krnl_host_global.$(TARGET).$(DSA).xclbin
endif
sdx_analyze profile -i sdaccel_profile_summary.csv -f html
sdx_analyze profile -i profile_summary.csv -f html

run_nimbix: all
$(COMMON_REPO)/utility/nimbix/run_nimbix.py $(EXECUTABLE) $(CMD_ARGS) $(DSA)
Expand All @@ -136,7 +136,7 @@ aws_build: check-aws_repo $(BINARY_CONTAINERS)
# Cleaning stuff
clean:
-$(RMDIR) $(EXECUTABLE) $(XCLBIN)/{*sw_emu*,*hw_emu*}
-$(RMDIR) sdaccel_* TempConfig system_estimate.xtxt *.rpt
-$(RMDIR) profile_* TempConfig system_estimate.xtxt *.rpt *.csv
-$(RMDIR) src/*.ll _xocc_* .Xil emconfig.json dltmp* xmltmp* *.log *.jou *.wcfg *.wdb

cleanall: clean
Expand Down
Expand Up @@ -4,15 +4,18 @@ host_global_5.0_shell
Host to global memory bandwidth test for 5.0 shell

## SUPPORTED PLATFORMS
Board | Software Version
------|-----------------
Xilinx Only 5.0 Shell|SDx 2018.3
Platform | Board | Software Version
---------|-------------------|-----------------
xilinx_u280_xdma|Xilinx Alveo U280|SDx 2019.1
xilinx_u250_qdma|Xilinx Alveo U250|SDx 2019.1


## DESIGN FILES
Application code is located in the src directory. Accelerator binary files will be compiled to the xclbin directory. The xclbin directory is required by the Makefile and its contents will be filled during compilation. A listing of all the files in this example is shown below

```
src/host.cpp
src/kernel.cpp
```

## COMMAND LINE ARGUMENTS
Expand Down
31 changes: 12 additions & 19 deletions getting_started/host/streaming_k2k/utils.mk
Expand Up @@ -3,22 +3,15 @@
# be overridden through the make command line
#+-------------------------------------------------------------------------------

REPORT := no
PROFILE := no
DEBUG := no

#'estimate' for estimate report generation
#'system' for system report generation
ifneq ($(REPORT), no)
CLFLAGS += --report estimate
CLLDFLAGS += --report system
endif

#Generates profile summary report
ifeq ($(PROFILE), yes)
LDCLFLAGS += --profile_kernel data:all:all:all
endif

DEBUG := no

#Generates debug summary report
ifeq ($(DEBUG), yes)
CLFLAGS += --dk protocol:all:all:all
Expand All @@ -35,6 +28,16 @@ ifndef XILINX_XRT
$(error XILINX_XRT variable is not set, please set correctly and rerun)
endif

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif

# sanitize_dsa - create a filesystem friendly name from dsa name
# $(1) - name of dsa
COLON=:
Expand All @@ -56,13 +59,3 @@ docs: README.md

README.md: description.json
$(ABS_COMMON_REPO)/utility/readme_gen/readme_gen.py description.json

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif
31 changes: 12 additions & 19 deletions getting_started/host/streaming_k2k_mm/utils.mk
Expand Up @@ -3,22 +3,15 @@
# be overridden through the make command line
#+-------------------------------------------------------------------------------

REPORT := no
PROFILE := no
DEBUG := no

#'estimate' for estimate report generation
#'system' for system report generation
ifneq ($(REPORT), no)
CLFLAGS += --report estimate
CLLDFLAGS += --report system
endif

#Generates profile summary report
ifeq ($(PROFILE), yes)
LDCLFLAGS += --profile_kernel data:all:all:all
endif

DEBUG := no

#Generates debug summary report
ifeq ($(DEBUG), yes)
CLFLAGS += --dk protocol:all:all:all
Expand All @@ -35,6 +28,16 @@ ifndef XILINX_XRT
$(error XILINX_XRT variable is not set, please set correctly and rerun)
endif

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif

# sanitize_dsa - create a filesystem friendly name from dsa name
# $(1) - name of dsa
COLON=:
Expand All @@ -56,13 +59,3 @@ docs: README.md

README.md: description.json
$(ABS_COMMON_REPO)/utility/readme_gen/readme_gen.py description.json

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif
31 changes: 12 additions & 19 deletions getting_started/host/streaming_mm_mixed/utils.mk
Expand Up @@ -3,22 +3,15 @@
# be overridden through the make command line
#+-------------------------------------------------------------------------------

REPORT := no
PROFILE := no
DEBUG := no

#'estimate' for estimate report generation
#'system' for system report generation
ifneq ($(REPORT), no)
CLFLAGS += --report estimate
CLLDFLAGS += --report system
endif

#Generates profile summary report
ifeq ($(PROFILE), yes)
LDCLFLAGS += --profile_kernel data:all:all:all
endif

DEBUG := no

#Generates debug summary report
ifeq ($(DEBUG), yes)
CLFLAGS += --dk protocol:all:all:all
Expand All @@ -35,6 +28,16 @@ ifndef XILINX_XRT
$(error XILINX_XRT variable is not set, please set correctly and rerun)
endif

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif

# sanitize_dsa - create a filesystem friendly name from dsa name
# $(1) - name of dsa
COLON=:
Expand All @@ -56,13 +59,3 @@ docs: README.md

README.md: description.json
$(ABS_COMMON_REPO)/utility/readme_gen/readme_gen.py description.json

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif
31 changes: 12 additions & 19 deletions getting_started/host/streaming_multi_cus/utils.mk
Expand Up @@ -3,22 +3,15 @@
# be overridden through the make command line
#+-------------------------------------------------------------------------------

REPORT := no
PROFILE := no
DEBUG := no

#'estimate' for estimate report generation
#'system' for system report generation
ifneq ($(REPORT), no)
CLFLAGS += --report estimate
CLLDFLAGS += --report system
endif

#Generates profile summary report
ifeq ($(PROFILE), yes)
LDCLFLAGS += --profile_kernel data:all:all:all
endif

DEBUG := no

#Generates debug summary report
ifeq ($(DEBUG), yes)
CLFLAGS += --dk protocol:all:all:all
Expand All @@ -35,6 +28,16 @@ ifndef XILINX_XRT
$(error XILINX_XRT variable is not set, please set correctly and rerun)
endif

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif

# sanitize_dsa - create a filesystem friendly name from dsa name
# $(1) - name of dsa
COLON=:
Expand All @@ -56,13 +59,3 @@ docs: README.md

README.md: description.json
$(ABS_COMMON_REPO)/utility/readme_gen/readme_gen.py description.json

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif
31 changes: 12 additions & 19 deletions getting_started/host/streaming_simple/utils.mk
Expand Up @@ -3,22 +3,15 @@
# be overridden through the make command line
#+-------------------------------------------------------------------------------

REPORT := no
PROFILE := no
DEBUG := no

#'estimate' for estimate report generation
#'system' for system report generation
ifneq ($(REPORT), no)
CLFLAGS += --report estimate
CLLDFLAGS += --report system
endif

#Generates profile summary report
ifeq ($(PROFILE), yes)
LDCLFLAGS += --profile_kernel data:all:all:all
endif

DEBUG := no

#Generates debug summary report
ifeq ($(DEBUG), yes)
CLFLAGS += --dk protocol:all:all:all
Expand All @@ -35,6 +28,16 @@ ifndef XILINX_XRT
$(error XILINX_XRT variable is not set, please set correctly and rerun)
endif

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif

# sanitize_dsa - create a filesystem friendly name from dsa name
# $(1) - name of dsa
COLON=:
Expand All @@ -56,13 +59,3 @@ docs: README.md

README.md: description.json
$(ABS_COMMON_REPO)/utility/readme_gen/readme_gen.py description.json

check-devices:
ifndef DEVICE
$(error DEVICE not set. Please set the DEVICE properly and rerun. Run "make help" for more details.)
endif

check-aws_repo:
ifndef SDACCEL_DIR
$(error SDACCEL_DIR not set. Please set it properly and rerun. Run "make help" for more details.)
endif

0 comments on commit e7cc52c

Please sign in to comment.