Hi all. I have finished writing my thesis, but I have one doubt remaining: since I did not use texture memory in my work, I cannot figure out the difference to constant memory. I read the programming guide and the book Programming Massively Paralel Processors (which, if I recall, has nothing on texture memory) but I cant seem to find a good description to help me differenciate them.
The most important difference is that constant memory reads get serialized unless all threads in a (half-) warp access the same address.
Further, texture reads have some goodies like address modes and interpolation that can be used at no extra cost.
The only advantage of constant cache is that it is an extra cache of 2kb per multiprocessor, separate of texture and (on 2.x devices) global memory cache. As it isn’t of much use anymore, I could well imagine that Nvidia will drop it entirely with their next generation of devices (although I have no inside knowledge of that).
Ok thank you very much, although I think I will have to tone down the level of theory that is implied :P. Even without explaining much things like warps and coalesced memory reads, I think that no one is going to understand the GPU/CUDA portion of my thesis ahah.