Visual Studio是否支持数据缓存操作?

时间:2009-12-24 03:14:28

标签: c++ c visual-c++ low-latency

阅读一些关于低延迟计算的精彩演讲。他们为__dcbt编译器引用了IBM的XL C / C ++编译器数据缓存操作cell(数据缓存块触摸)。该操作将一块内存加载到L1缓存中。

Visual Studio(或G ++或Intel)是否具有与英特尔处理器类似的功能?如果是这样,并且解决方案是特定于平台的(即Windows或* nix),请说明。

1 个答案:

答案 0 :(得分:4)

是的,Visual Studio支持所有SSE和MMX内部操作。缓存控制操作在此处简要描述:http://www.tommesani.com/SSECacheabilityControl.html 并在Intel's instruction set reference中详细解释。

Microsoft documents their intrinsics for cache control at MSDN。虽然它们看起来像函数,但编译器实际上将它们归结为适当的硬件指令。请务必查看他们的SSE1和SSE2缓存控制指令,它们在不同的类别下列出(请参阅页面左侧的展开树)。

相当于dcbt的x86是_mm_prefetch。没有直接等同于dcbz,但最接近的类似物为_mm_stream_si128

我相信GCC使用相同的内在名称(因为它们来自英特尔编译器)。