Beginner questions on memory spaces

Hello,

I went through some tutorials that described CUDA and different memory spaces, but when I tried to retrieve the related properties from my graphics board (G210M) I got results that I don’t understand.

So I have global memory of 536084480: what I expected.

Shared memory per block: 16,384. I have read that I can have a maximum of 65,535 blocks. 1GB of on-chip memory??? Or how much of shared memory is actually available (16K in total?).

MaxTexture2D and MaxTexture3D: here I expected values that are not greater than the value for the global memory (assuming I have 8 Bit data and that we are talking about uncompressed textures). What I got for the maximum dimension were 65,536 * 32768 (2D) and 2048 * 2048 * 2048 (3D), both are higher than what I expected. Are these values just theoretical values about what I can address at a maximum (as opposed to actually having that memory available?).

Any help would be appreciated.

Thanks,
Mark

That means you can schedule a maximum of 65535 blocks, where each of them has access to 16k shared mem, so that does not mean you have 1GB of on-chip memory (the term ‘shared’ sort of implies that External Image ).

These values tell you maximum texture size along each dimension. You are right that your memory will not allow you to create 2k x 2k x 2k 3d texture, but it allows you to create 1 x 1 x 4024 3d texture, but it will not work since max dimention of 3d texture along Z coordinate for your card is 2048.

Ah, thanks! I thought “shared” in this context means shared by all the threads of an individual block, hence the confusion. Thanks for the clarifications.