How large is the texture cache?

Hello all

I am writing a function which uses complex exponentials extensively. I’m considering writing this as a 256-element texture with 2 float point values per element (one for the cosine, and one for the complex sine). This would allow linear interpolation and caching, which is accurate enough for my need.

Now… I read that texture is cached and optimized for 2D locality (I assume 1D is fine as well), but how large is a texture cache? My fetches are almost certain to cover the whole range over all the different threads at each iteration, so if only part is cached, it won’t function as desired.

Will it be better to allocate 2kb shared memory and do a manual linear interpolation here? Because here I assume I will have bank issues?

I’m running on a 260GTX, but I don’t know if texture cache is fixed along with shared, or part of a large pool = constant + shared + something else even.



You may be better off using the intrinsic __sincosf

Hmm, I had missed that one. I’ll give it a go!

My expression is something similar to:

exp( i * sqrt( x ))

if I use the intrinsic, It would come out as __sincosf( __fsqrt_rn( x ), sptr, cptr ). Will this double call be very heavy on the SFU, in which case texture fetches could be used to alleviate this, or will it hugely outperform any texture fetches in general? Assuming the texture can be in the cache.