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