Along with Vivado HLS installation a linear algebra library is provided. Within this library there is this function QRF_ALT, which is supposed to be a high throughput version of Qrf-basic: QR decomposition which uses givens rotations.
My question is that how does it achieves high throughput? From the brief comments that are provided with the code, my guess is that it uses parallel processing of batches of matrix rows, but how does it schedule it, I could not understand.
Does anyone has any prior experience with Vivado HLS who could help me? At this point any help would be greatly appreciated.
The library is located at (linux) in
/opt/Xilinx/Vivado/<installation version>/examples/design/linear_algebra/qrf_alt
Files can also be found here :
https://filebin.ca/5gtV16lXK4ZT/qrf_alt.h