Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does Visual Studio support data cache operations?

Reading through some great presentations on low latency computing. They had a reference to IBM's XL C/C++ compiler data cache operation __dcbt (Data Cache Block Touch) for their cell compiler. The operation loads a block of memory into L1 cache.

Does Visual Studio (or G++ or Intel) have similar functionality for Intel Processors? If so and the solution is platform specific (i.e. Windows or *nix only) please say so.

like image 887
paxos1977 Avatar asked Dec 24 '09 03:12

paxos1977


People also ask

Does Visual Studio have a cache?

The Visual Studio component cache is located at %localappdata%\Microsoft\VisualStudio\14.0\ComponentModelCache. This extension makes it easy to delete that folder so you don't have to remember the location of the cache directory.

How do I clear Visual Studio cache?

1. Close Visual Studio (ensure devenv.exe is not present in the Task Manager) 2. Delete the %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache directory 3. Restart Visual Studio.


1 Answers

Yes, Visual Studio supports all the SSE and MMX intrinsic operations. The cache control operations are briefly described here: http://www.tommesani.com/SSECacheabilityControl.html and explained at length in Intel's instruction set reference.

Microsoft documents their intrinsics for cache control at MSDN. Although they look like functions, the compiler actually boils them down to the appropriate hardware instruction. Be sure to look at both their SSE1 and SSE2 cache control instructions, which they list under separate categories (see the expanding tree on the left side of their page).

The x86 equivalent to dcbt is _mm_prefetch. There is no direct equivalent to dcbz, but the closest analogue is _mm_stream_si128.

I believe GCC uses the same intrinsic names (as they are taken from the Intel compiler).

like image 55
Crashworks Avatar answered Oct 03 '22 01:10

Crashworks