What is the algorithm used in QRF_ALT function in linear Algebra library provided with the Xilinx Vivado_HLS?

103 Views Asked by At

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

https://filebin.ca/5gtVEqUqccsx/qrf_alt.cpp

https://filebin.ca/5gtVLiMVGsbv/qrf_alt_tb.cpp

1

There are 1 best solutions below

2
Sibyl On

Could you please look into or paste here what is the kernel function body of hls::qrf_top called in qrf_alt.cpp at line 53? That hls::qrf_top is the function that really performs QR factorization. The files you provided don't contain the algorithm part.