Defining 512-bit Interface in OpenCL C Kernel

OpenCL C specification defines vector data types that can have up to 16 elements of the same basic C data type. Kernel arguments defined as int16, uint16, and float16 are automatically packed by the SDAccel compiler as 512-bit interfaces during synthesis.

Below is the code snippet from the Wide Memory Read/Write OpenCL C Example in kernel_to_gmem category on Xilinx On-boarding Example GitHub. It defines all global pointers in the kernel argument list as uint16. A 512-bit AXI4 memory mapped interface will be generated for these global pointers after compilation.

kernel __attribute__ ((reqd_work_group_size(1, 1, 1)))
void vadd(
        const __global uint16 *in1, // Read-Only Vector 1
        const __global uint16 *in2, // Read-Only Vector 2
        __global uint16 *out,       // Output Result
        int size                   // Size in integer
        )
{

}