LINUX.ORG.RU

Надо проверить графики Герба Саттера про префетчинг

 


0

2

Наткнулся на видео с ним. http://channel9.msdn.com/Events/Build/2014/2-661

Тест такой: создается массив в памяти, и по нему идет обход в прямом, обратном, псевдорандомном и реально в рандомном порядке.

На слайдах первые два теста одинаково быстрые, третий тормозит, четвертый реально тормозит. Так же видны пороги, где мы перестаем помещаться в кеши процессора.

У меня графики скачут как хотят, прямой обход иногда самый долгий, иногда с увеличением размера массива скорость увеличивается. Видимо я написал как индус. https://github.com/Kakadu/cpp-test-prefetcher/

Ткните, пожалуйста, пальцем где жопа. Спасибо.


Рандомом лучше запастись заранее. А то система может его собирать из всяких нажатий клавиш.

ziemin ★★
()
Ответ на: комментарий от ziemin

Кстати ещё лучше написать функцию псевдослучайного распределения. Главное чтобы она работала за константное время.

ziemin ★★
()

Без оптимизации может быть много лишнего кода, с оптимизацией выкинется сам нагрузочный цикл (результат x нигде не используется). Ну и блоб вектора заранее прогреваешь перед тестом, во время иницилизации вектора. Рандомное чтение использует в два раза больше памяти чем все остальные тесты. Лучше использовать простой псевдогенератор типа rand() без дополнительной памяти.

Все блобы под вектора лучше выделять заранее размером в несколько кешей чтобы точно быть уверенным, что они не попадут в кеш при повторном тестировании.

mashina ★★★★★
()
Последнее исправление: mashina (всего исправлений: 1)

На слайдах первые два теста одинаково быстрые, третий тормозит, четвертый реально тормозит. Так же видны пороги, где мы перестаем помещаться в кеши процессора.

Собственно, это ни для кого не секрет уже кучу лет.
мыщъх про это больше 10 лет назад писал.

devl547 ★★★★★
()
Ответ на: комментарий от devl547

А вот второй пример его, мне был вообще не очевиден. Там задача по одномы добавлять элементы в котэйнер, чтобы тот был отсортированым. Так получается, что для некоторого количества чисел массив быстрее связанного списка.

Kakadu
() автор топика
Ответ на: комментарий от no-such-file

На графике вектор, на заголовке слайда Array. Думаю не важно, главное чтобы локальность была

Kakadu
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.