Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
9 years ago

local memory and private memory size?

NDRange setting

WorkSize[3] = {56, 56, 96}

WorkGroupSize[3] = {14, 14, 1}

I would like to copy data from global memory to work group as local memory.

I also want to copy some data from global memory to work item private memory.

I don't know how many local memory I can create?

How to check how many local/private memory I can use?

The FPGA board is a10gx.

Thanks,

Matt

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Depending on size and access pattern, Local and Private Memory on the FPGA are created using either registers or FPGA BLOCK RAMs. For buffers that are bigger than a certain size, the compiler always uses Block RAMs. The total size of Block RAMs you get on Arria 10 is around 6.5 MB. You also get around 1.5 MB of on-chip memory in form of MLAB. There is also an abundance of registers; thought they will only be used for very small buffers (a few hundred bytes).

    If you add the --report switch to your kernel compilation command, you will get an area estimation report from the compiler that will tell you how much of the FPGA resources you are using; however, this report can be sometimes be inacurate and you can get exact numbers only after full placement and routing.