extern __shared__ limits

Can I alloate more than 64k bytes of shared memory?

The fact is that I need 256k… but G80 shared memory limit is 16k. The docs says:

The key is… “in addition to the statically allocated memory”. Means that I can allocate the 256Kb for the shared memory I need?


You can get up to 16K of shared memory per block. Your kernel won’t compile if it tries to use more than that.

If the shared memory allocated in the cubin + the shared memory allocated by Ns exceeds 16 KiB, then you will get a kernel launch error. There is only 16 KiB of shared memory available per block. I don’t know where you got the 64 from.