4 ms·
So who uses these features then?
by selckin 12y ago
So who uses these features then?
- agumonkey 12y agoWild guess: libs (intel cilk?), compiler intrisics through reified assembly.
- bhouston 12y agoI've used a lot of SSE2 and prefetch instincs in Visual C++ for math / data heavy high performance computing applications. It can make a fairly big different -- like more than 50% performance improvements for key parts of the code.
- vardump 12y agoThat depends heavily on with CPU and memory subsystem combination you're running it on. You need to know how far to prefetch and how to order your data in memory.
- kabdib 12y agoGames on consoles, where the hardware architecture is frozen and you can optimize to the metal all you want. Not all titles do this, since most titles are cross-platform and you're not going to do tons of optimization for a specific one unless there is a huge payoff.
- tarpherder 12y agoIt is done on PC as well, but we can't assume very recent instruction sets. We'll have to do with semi recent instruction sets.
- TallGuyShort 12y agoSpecialized HPC workloads
- lgeek 12y agoMany of the capabilities described in the article are just hardware features which don't need any control from application developers, but their effectiveness can be improved if the developers are aware of them (e.g. caches, TLBs). Others properties are exploited automatically by compilers (e.g. instruction scheduling for improving throughput in a superscalar processor) Instruction set extensions (which I believe might be what you were thinking of) are used via intrinsics and assembly programming by pretty much any performance-oriented code. For example look at the dozens of architecture-specific implementations of glibc functions: x86-64[0], arm[1]. [0] https://sourceware.org/git/?p=glibc.git;a=tree;f=sysdeps/x86_64/multiarch https://sourceware.org/git/?p=glibc.git;a=tree;f=sysdeps/x86... [1] https://sourceware.org/git/?p=glibc.git;a=tree;f=sysdeps/arm/armv7/multiarch https://sourceware.org/git/?p=glibc.git;a=tree;f=sysdeps/arm...