Does the local memory usage increase with banking and coalescing?
Does the number of M20K blocks increase when compiler automatically banks or increases the bank width?
Eg:-
int sample[4] [32];
int a[4][32];
int b[4][32];
#pragma unroll
for(j = 0; j < 4; j++) {
#pragma unroll
for (i = 0; i < 32; i++) {
sample[j][i] = a[j][i] + b[j][i];
}
}
In one of my programs which had a similar snippet as above, the M20K usage suddenly boosted up. The number of RAMs allocated are 103 which is quite strange. Happens even for a and b variables.
The area report shows no reason why the number of RAM blocks increased.
Requested size 512 bytes
Implemented size 512 bytes
Private memory Optimal
Total replication 1
Number of banks 1
Bank width 4096 bits
Bank depth 1 word
Additional information Requested size 512 bytes, implemented size 512 bytes, stall-free, 1 read and 1 write.
Reference See Best Practices Guide : Local Memory for more information.
Is the increase in RAM blocks due to the type of memory access?