Сценарий предварительной выборки кэша — мощная архитектура

Я использую асм dcbt Команда для прикосновения к диапазону памяти, который, я знаю, потребуется для выполнения определенных вычислений. Мой профилировщик показывает шаблон пропусков кеша из-за спорадического доступа к элементам в этом диапазоне (4 касания, 5 пропущенных и т. Д. — при каждом 5-м действии кэш пропускается).

Есть функция A() который имеет доступ к точному диапазону и его размеру. это A() функция вызывается перед другим разделом, который также будет касаться и использовать данные из диапазона A() использует. Могу ли я просто использовать dcbt внутри A() а затем ожидать улучшения в B(), или же я должен использовать dcbt на диапазон в той же функции, которая использует этот сбор данных?

0

Решение

Предполагая ВСЕ данные, используемые в A() помещается в кэш, вы должны увидеть улучшение B() тоже. Тем не менее, вы также можете закончить чтение данных в кеш, который не используется, который никому не нужен и просто заставляет шину памяти быть занятой, когда ее можно использовать для загрузки некоторых АКТУАЛЬНЫХ данных, которые необходимы, если ваш шаблон так же спорадичен, как вы говорите. Во что бы то ни стало, попробуйте, но не ожидайте, что он будет работать волшебным образом — часто требуется небольшая «настройка», особенно в том, что касается того, «насколько далеко вы сейчас находитесь, где вы читаете данные».

В зависимости от точного поведения A() а также B()Например, если вы переключаетесь между чтением и записью, чтением из одного раздела и записью в совершенно другой раздел, группирование записей в «область хранения», которая затем копируется в ОЗУ, часто является хорошим планом — сделайте удерживая область что-то вроде 1 / 8-1 / 4 кеша L1.

[Предостережение: у меня совершенно нет опыта работы с архитектурой PowerPC, но я использовал предварительную выборку кеша и другие методы оптимизации памяти в своей работе с процессорами x86, иногда с некоторым успехом, но не таким большим успехом в другое время]
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]