Migrate Memory API - 2022.1 English

Vitis Guidance Messaging (UG1315)

Document ID
UG1315
Release Date
2022-10-19
Version
2022.1 English

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.