Texture doesn't cache if no 2D locality? texture cache

Hi, I tested and found that even I access a small 2D texture array 32*32 int,
which by size is smaller than cache size, the performance is of no difference from using globalmemory if the access has no 2D locality, i.e., randomly read.
Is it that Texture doesn’t cache if my access has no 2D locality? Thanks!

ps. constant memory will cache my random access.