Kernel Optimization through Macro Level Pipelining
Examples Table
| Example | Description | Key Concepts / Keywords |
|---|---|---|
| dataflow_func_ocl/ | This is simple example of vector addition to demonstrate Dataflow functionality in OpenCL Kernel. OpenCL Dataflow allows user to run multiple functions together to achieve higher throughput. | Key Concepts - Function/Task Level Parallelism Keywords - xcl_dataflow - xclDataflowFifoDepth |
| dataflow_loop_c/ | This is simple example of vector addition to demonstrate Loops Dataflow functionality of HLS. HLS Dataflow allows user to schedule multiple sequential loops concurrently to achieve higher throughput. | Key Concepts - Loop Dataflow Keywords - dataflow - hls::stream<> |
| dataflow_pipes_ocl/ | This is simple example of vector addition to demonstrate OpenCL Pipe Memory usage. OpenCL PIPE memory functionality allows user to achieve kernel-to-kernel data transfer without using global memory. | Key Concepts - Dataflow - kernel to kernel pipes Keywords - pipe - xcl_reqd_pipe_depth - read_pipe_block() - write_pipe_block() |
| dataflow_stream_array_c/ | This is simple example of Multiple Stages Vector Addition to demonstrate Array of Stream usage in HLS C Kernel Code. | Key Concepts - Array of Stream Keywords - dataflow - hls::stream<> |
| dataflow_stream_c/ | This is simple example of vector addition to demonstrate Dataflow functionality of HLS. HLS Dataflow allows user to schedule multiple task together to achieve higher throughput. | Key Concepts - Task Level Parallelism Keywords - dataflow - hls::stream<> |