Предварительная выборка данных в кэш для x86 -64

В моем приложении в какой-то момент мне нужно выполнить вычисления для большого непрерывного блока данных памяти (100 МБ ). Я думал о том, чтобы продолжить предварительную выборку той части блока, к которой моя программа будет прикасаться в будущем, чтобы, когда я выполняю вычисления в этой части, данные уже находились в кеше.

Может ли кто-нибудь привести простой пример того, как добиться этого с помощью gcc? Я где-то читал _mm_prefetch, но не знаю, как им правильно пользоваться. Также обратите внимание, что у меня многоядерная система, но каждое ядро ​​будет параллельно работать с разными регионами памяти.

15
задан Paul R 13 May 2015 в 08:15
поделиться