Texture memory implicitly used as show by NSight

Dear Community,

I was recently profiling my CUDA kernel, when I noticed something strange in the analysis. Under the “Kernel Performance Limiter” it showed that “Memory (Texture)” is utilized, even though I do not explicitly store any data as texture memory on the GPU (see image here https://imgur.com/xRHzh2b ).

Is it possible that texture memory is implicitly used within a kernel? Or is this a bug in NSight?

I was trying to find a way to make sure that texture memory is actually used, so I had a look at the PTX file of my kernel, in search for “.tex” entries, but I couldn’t find any (and the documentation mentioned this being deprecated now?)

Any insight on this matter would be appreciated.

Cheers,
Jimmy

Not sure, but maybe constant memory access is going through the texture cache, and registered as such in the profiler?

I do use constant memory yes, but from what I understand there is a dedicated cache for constant memory and one for texture memory. So even though I access constant memory, the texture cache shouldn’t be accounted for that.

texture/L1 functionality is combined on certain GPU architectures, for example maxwell:

https://docs.nvidia.com/cuda/maxwell-tuning-guide/index.html#l1-cache

On those architectures, traffic may show up in the “texture” path, even though you don’t have any explicit use of texture in your code.

Studying the cuda tuning guides for the various architectures will shed some more light on this.