Поддерживает ли Visual Studio операции кэширования данных? - PullRequest
6 голосов
/ 24 декабря 2009

Чтение некоторых замечательных презентаций по вычислениям с малой задержкой. У них была ссылка на операцию кэширования данных компилятора XL C / C ++ IBM __dcbt (Touch Cache Block Touch) для их компилятора cell . Операция загружает блок памяти в кэш L1.

Имеет ли Visual Studio (или G ++ или Intel) аналогичную функциональность для процессоров Intel? Если это так, и решение зависит от платформы (то есть только для Windows или * nix), скажите, пожалуйста.

1 Ответ

4 голосов
/ 24 декабря 2009

Да, Visual Studio поддерживает все внутренние операции SSE и MMX. Операции управления кэшем кратко описаны здесь: http://www.tommesani.com/SSECacheabilityControl.html и подробно объяснено в Справочник по набору команд Intel .

Microsoft документирует свои особенности управления кэшем в MSDN . Хотя они выглядят как функции, компилятор фактически сводит их к соответствующей аппаратной инструкции. Обязательно ознакомьтесь с инструкциями по управлению кэшем SSE1 и SSE2, которые они перечисляют в отдельных категориях (см. Расширяющееся дерево в левой части их страницы).

x86, эквивалентный dcbt, равен _mm_prefetch. Прямого эквивалента dcbz нет, но ближайший аналог - _mm_stream_si128.

Я считаю, что GCC использует те же внутренние имена (как они взяты из компилятора Intel).

...