Thanks!

From the NVIDIA CUDA Programming guide: 
<em>"On devices of compute capability 1.x, some kernels can achieve a speedup when using (cached) texture fetches rather than regular global memory loads (e.g., when the regular loads do not coalesce well)."</em> 

Basically, in compute 1.x cards, global memory is not cached, while texture memory is. In compute 2.x cards, such as Fermi, global memory is now cached. Compute 2.x cards can still use texture memory, but the advantage of it over global memory isn't as significant compared to compute 1.x cards.

In addition to texture memory, careful shared memory and register usage can bring significant performance enhancements as well.

Have a look at the <strong><a href="http://wiki.accelereyes.com/wiki/index.php/MTIMES_Benchmarks_(Jacket_1.4)" rel="nofollow">MTIMES Benchmarks</a></strong> wiki for up-to-date performance results, including Fermi (Tesla C2050) benchmarks.

~Chris