username_4567
username_4567

Reputation: 4903

What is the size of my CUDA texture memory?

How to interpret texture memory information output by deviceQuery sample to know texture memory size? Here is output of my texture memory.

Max Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536,65535),3D=(2048,2048,2048)
Max Layered Texture Size (dim) x layers 1D=(16384) x 2048, 2D=(16384,16384) x 2048

Upvotes: 8

Views: 5075

Answers (2)

talonmies
talonmies

Reputation: 72349

It is a common misconception, but there is no such thing as "texture memory" in CUDA GPUs. There are only textures, which are global memory allocations accessed through dedicated hardware which has inbuilt cache, filtering and addressing limitations which lead to the size limits you see reported in the documentation and device query. So the limit is either roughly the free amount of global memory (allowing for padding and alignment in CUDA arrays) or the dimensional limits you already quoted.

Upvotes: 10

Danny Varod
Danny Varod

Reputation: 18068

The output shows that the maximum texture dimensions are:

For 1D textures 65536 For 2D textures 65536*65535 For 3D textures 2048*2048*2048

If you want the size in bytes, multiply that by the maximum number of channels (4) and the maximum sub-pixel size (4B).

(For layered textures, multiply the relevant numbers you got for the dimensions by the number of maximum layers you got.)

However, this is the maximum size for a single texture, not the available memory for all textures.

Upvotes: 3

Related Questions