In most FPGA-accelerated systems, the maximum achievable throughput is limited by the PCIe® bus. The PCIe® bus performance is influenced by many different aspects, such as the motherboard, drivers, targeted shell, and transfer sizes. The Vitis core development kit provides a utility, xbutil
.
Run the xbutil validate
command to measure the maximum PCIe bandwidth that can be achieved. The throughput on your design target cannot exceed this upper limit.
The xbutil validate
command produces the following output.
Host -> PCIe -> FPGA write bandwidth = 8485.43 MB/s
Host <- PCIe <- FPGA read bandwidth = 12164.4 MB/s
Data Validity & DMA Test on bank1
Host -> PCIe -> FPGA write bandwidth = 9566.47 MB/s
Host <- PCIe <- FPGA read bandwidth = 12155.7 MB/s
Data Validity & DMA Test on bank2
Host -> PCIe -> FPGA write bandwidth = 8562.48 MB/s
Host <- PCIe <- FPGA read bandwidth = 12154.5 MB/s
The PCIe FPGA write bandwidth is about 9 GB/s and the FPGA read bandwidth is about 12 GB/s. The PCIe bandwidth is 3.1 GB/s above your established goal.