When writing an OpenCL kernel program using the Intel® FPGA SDK for OpenCL*, when declaring an array that requires dynamic indexing, is it implemented in registers or block RAM?
Category: OpenCL*
tool:-
Device: Arria® V
Altera Offline Compiler (AOC) determines at compile time whether variables are implemented in registers or organized in block RAM.
Register implementations have a performance advantage because data can be accessed in a single cycle, but AOC usually implements matrix variables in block RAM for code that accesses matrix elements with variables.
For this to be implemented in registers, the AOC must be deterministic at compile time (during circuit generation) and only then will the AOC implement its matrix variables as registers.
Reference information
https://www.altera.com/en_US/pdfs/literature/hb/opencl-sdk/aocl_programming_guide.pdf
(Search for Inferring a Register.)
Experienced FAE
Free consultation is available.
From specific product specifications to parts selection, the Company FAE will answer your technical concerns free of charge. Please feel free to contact us.