Как закрыть предварительную выборку кеша в windows? - PullRequest
4 голосов
/ 08 марта 2010

В программе на C / C ++ как закрыть предварительную выборку каждого ядра в системе Windows?

Ответы [ 2 ]

3 голосов
/ 18 марта 2010

Есть вызов API Windows FlushInstructionCache ()

Возможно, это то, что вам нужно? Обычно он используется самоизменяющимся кодом, чтобы убедиться, что изменения кода в ОЗУ видны процессору.

0 голосов
/ 08 марта 2010

Я видел этот трюк, упомянутый в некотором коде, хотя я не уверен на 100%, является ли этот трюк тем, что вы ищете, однако код был таким

Sleep(0);

Используя Sleep(0), вы очищаете инструкции процессора и вызываете переключение контекста ... Теперь вы сказали «для каждого ядра», я не думаю, что вы можете явно выбрать ядро, чтобы сделать это, как, как вы знать, на каком ядре выполняется код, для которого необходимо закрыть предварительную выборку из кэша ....

...