Use Burst Transfers - 2024.2 English - UG1700

Data Center Acceleration Using Vitis User Guide (UG1700)

Document ID
UG1700
Release Date
2025-01-15
Version
2024.2 English

The first read or write request to global memory is expensive, but subsequent contiguous operations are not. Transferring data in bursts hides the memory access latency and improves bandwidth usage and efficiency of the memory controller.

Atomic accesses to global memory should always be avoided unless absolutely required. The load and store functions should be coded to always infer bursting transaction. This can be done using a memcpy operation as shown in the vadd.cpp file in the Vitis Accel Examples, or by creating a tight for loop accessing all the required values sequentially, as explained in Developing Vitis Kernels and Applications.