C++是否支持缓存控制指令

Does C++ support cache control instructions

作为 gcc 在 Windows 环境中的扩展 we can void _mm_stream_pi(__m64 *p, __m64 a); if we want to store efficiently a large object in main memory, which will not be accessed soon. This seems to be supported 以及具有完全相同的签名。在不使缓存无效的情况下流式传输到主内存,应该可以节省数千个等待 I/O.

的周期

Write combining是另一种减少主存访问的技术,掌握在程序员手中。然而,检查缓存行大小并调整代码以符合数量是一项手动任务。

C++ 标准是否提供了对这些概念的任何抽象?

是的,人们正在研究它作为 SIMD 提案的一部分

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4184.pdf 6.2.2 non-temporal 访问

对于写入合并,我认为 C++ 作为语言不必做任何事情。这是一个不向 ISA 公开的实现细节,与流式 SIMD 扩展相反