Pull to refresh
70
0
Alexander Komarov @izard

software optimization

Send message
Юрий, отличный пост! Но уж очень разные темы подняты, и их слишком много для нормального восприятия как цельной статьи. Например, та часть, что о беседах с «техно-феминистками», очень хороша; мог бы получиться отличный отдельный пост об особенностях карьеры.
А, тогда ладно. Но бранч предикт, кэширование, simd и gpu принципиально на arm не отличается. Так что вся эта гонка за % CPI за счет небольшой оптимизации текущих боттлнеков в конвейере продолжается надолго. Есть конечно и технологии 90х а не 70х, но про них, когда/если придет время, расскажет большой босс на IDF.
Архитектурные энергозатраты? Вы имеете в виду декодер x86 инструкций во фронтенде? Посмотрите на кристалл даже не Xeon, а Атом, и найдите сколько он по площади занимает. Лет 15 назад это еще был какой-то ощутимый %, а теперь — сотые доли % если не тысячные.
А зачем это Интел? Несколько лет назад появились серверные Арм, и одновременно появились сервера на Атом с соответствующим энергопотреблением.
Там серферы есть, значит есть где недорого взять напрокат wetsuit, и купаешься сколько влезет.
Если с splitlock как в примере, то несущественная. Если без сплитлока, надо измерять, не знаю так.
AVX и SSE содержат достаточно простые инструкции. Скорее всего, если на них написать свой логарифм, может быть быстрее.
Только чтобы подключить старое железо — старше broadwell и skylake, или редкое/мелкое. Весь зоопарк постоянно держать подключеным места не хватает, да и зачем — очень редко нужно.
Спасибо, перешлю ссылку на google translate статьи человеку, который должен знать разработчиков quark EDK2
Да, выше уже написали, что еще это может быть особенно дорого на Xeon-EX, там NUMA особенно злая.
Можно, даже если другие VM работают на других ядрах. Но для многопроцессорного сервера — только соседей по процессору. VM можно запрограмировать это ловить и давать таким гостям совсем мало тактов, но вроде это нигде пока не реализовано.
А, это от vtune осталось, иначе ивенты не ловились. Конечно можно один раз померить, будет несколько тысяч циклов. Спасибо, поправлю.
да, я что-то код сверху не могу заставить тормозить, исполняю как раз на HSW. Схожу в лабу на SNB проверю, как раз выдран с реального кода на SNB.
WBINV надо быть в ring 0, ее неожиданно в пользовательском коде оказаться не может. Кстати, она сама не очень медленная, тормоза начинаются потом, когда оказывается что кэш пустой.
В Atom еще почти независимое. Но даже там в этом микрокоде полно load/store, которые занимают обычные порты. а в HSW core просто 8 портов, некоторые содержат в том числе execution units, работающие с fp.
Эта инструкция декодируется в длинный микрокод, так что нет (то есть этот микрокод, понятно, ипользует ILP внутри себя, но следующие инструкции ждут).
Да, десятки и сотни, все примеры из статьи кроме fy2x — тысячи.
Сейчас проверю последний раз этот пример я запускал 2 года назад. Наверное, -fast-math включился, он отбрасывает denormals. Но код вроде правильный сгенерился.
Для wifi/bluetooth на галилео оч. рекомендую minip-pcie типа Intel N135 или 6250
апгрейд прошивки через reboot ota не на 100% совместим с последней официальной прошивкой. Ее надо прошивать через flashall.sh, который находится в корневом каталоге.

Information

Rating
Does not participate
Location
Portland, Oregon, США
Date of birth
Registered
Activity