As discussed in Creating Multiple Instances of a Kernel, multiple compute units (CUs) of a single kernel can be instantiated on the FPGA during the kernel linking process. CUs can be considered symmetrical or asymmetrical with regard to other CUs of the same kernel.
- CUs are considered symmetrical when they have exactly the same
connectivity.spoptions, and therefore have identical connections to global memory. As a result, the Xilinx Runtime can use them interchangeably. A call to
clEnqueueTaskcan result in the invocation of any instance in a group of symmetrical CUs.
- CUs are considered asymmetrical when they do not have exactly
connectivity.spoptions, and therefore do not have identical connections to global memory. Using the same setup of input and output buffers, it is not possible for XRT to execute asymmetrical CUs interchangeably.