Description
This message indicates how often the migrate memory OpenCL API was called.
Explanation
While using the clEnqueueWriteBuffer
and
clEnqueueReadBuffer
OpenCL buffers is convenient, their actual transaction is triggered by a
call to clEnqueueTask. Therefore, these functions can create unnecessary overhead as the
write buffer only starts transferring data once the clEnqueueTask is initiated.
Alternatively, OpenCL provides the clEnqueueMigrateMemObjects
API, which starts data transfer
immediately given the bandwidth. Xilinx strongly recommends only using
this interface for initiating the host code to accelerator data transfer.
Recommendation
Xilinx recommends using clEnqueueMigrateMemObjects
. Otherwise, carefully look at the application
timeline and host code synchronization. If considerable time is passing between the actual
call to transfer the data and it being executed is passing without the usage of the PCIe
bandwidth, the code can potentially be improved by utilizing calls to clEnqueueMigrateMemObjects
.