Avoiding Complex Structs or Classes for Kernel Arguments

Kernel arguments are mapped onto hardware interfaces between the host code and the FPGA. Complex structs or classes can lead to very complex hardware interfaces due to memory layout and data packing differences. This may introduce potential issues that are very difficult to debug in a complex system. It’s recommended to use simple structs for kernel arguments that can be always packed to 32-bit boundary. Refer to the “Custom Data Type Example” in “kernel_to_gmem” category at Xilinx On-boarding Example GitHub on the recommended way for using structs.