Обновить
80
0
Alexander Komarov@izard

software optimization: CPU, GPU

Отправить сообщение
Запостил update, могу прислать код u-benchmark'а.
да, тоже очень интересно с исторической т.з. Один из выводов из статьи — в начале 2000х на AMD железные префетчеры не справлялись даже с линейным паттерном доступа. Впрочем, я не уверен, что в те времена и на Pentium4 все было с этим в порядке.
DI, SI, CX конечно.
Я специально написал, что есть особый случай для non temporals/write combined памяти (которые и используются для копирования картинок по фреймбуфферам и memory mapped IO). Действительно, там возможна такая разница.

Для наиболее употребительного копирования нескольких килобайт в обычной памяти, могу прислать простой микро бенчмарк в личку. для виндов устроит, найдется nehalem/westmere/sandy bridge чтобы проверить?
А что, там не простого h/w stride prefetcher'а?
На sandy bridge сегодня могу протестировать.

у копирования через non temporal ограниченная применимость. Там, где применимо, оно, конечно, должно быть быстрее rep movs
На sandy bridge сегодня могу протестировать.

у копирования через non temporal ограниченная применимость. Там, где применимо, оно, конечно, должно быть быстрее rep movs
мои тесты не пойдут, у меня все на x86 assembly. Впрочем, на POWER, возможно и проблемы зоопарка memcpy нет — все таки RISC, все там должно быть аккуратненько.
очень уж большая таблица получается (каждый год по микроархитектуре, и штук 5 memcpy). разница получается в 2-3 раза между лучшей и худшей реализацией для каждого проца.

Кроме того, микробенчмарк только из memcpy не так интересен, в реальном приложении еще дополнительные факторы, которые я указал в статье вступают в силу.
Сорри, даже померять не на чем. Может, кто прокомментирует?
Не знаю, но они это поняли наконец-то. Теперь, я думаю, такого зоопарка реализаций больше не будет.
Сорри, у меня в лабе куча всего, но по понятным причинам только Интел. Даже померять не начем. Может быть, кто-нибудь прокомментирует про ARM, MIPS, SPARC или POWER?
monitor/mwait еще позволяет заснуть до наступления события. В юзермоде недоступно пока, к сожалению.
упс, ну да, спалился :)
пользуюсь для этого IACA, очень помогает.
В 2 раза понятно почему, и еще избавились от возни с Х87 стековой машиной. На сингл флотах в 3 раза могло быть.
до 5 метров предыдущее поколение плэйспорта стабильно работает, picasaweb.google.com/109130265135976668813/EilatUnderWater. Давно юзаю.
можно просто назначить з.п. больше 65 тыс (раньше было 85 тыс)
Есть еще ограничение — современные ОС поддерживают 64 бита, а там TSS не поддерживает переключение. Есть несколько редких ОС, которые использовали TSS для поддержки многозадачности, но очень обломались когда захотели поддержку 64 бит.

Информация

В рейтинге
Не участвует
Откуда
München, Bayern, Германия
Зарегистрирован
Активность

Специализация

Performance engineer
Ведущий
Performance tuning