0x1337 – Telegram
0x1337
291 subscribers
6 photos
9 files
19 links
Y0L0 DUD33333
Download Telegram
Channel created
На процессорах Intel Sandy Bridge и выше - до Broadwell, инструкция ADC занимает 2uop при декодировании и имеет latency 2.
Это та информация которую вы легко можете найти у Агнера Фога: agner.org/optimize.
Однако, эта информация не полна. Начиная с Intel Sandy Bridge Family, процессор при обработке данной команды поддерживает специальный случай, а именно:
ADC Reg64, 0
Здесь мы получим декодирование ADC как 1uop и latency 1. Факт, вообще говоря нигде не описанный и мало кому известный. Да, теперь ты знаешь больше!

#optimization #asm
Вот здесь^ найдешь FAQ по замеру Latency / Throughput на Arm Cortex A53, а также, некоторые произведенные замеры, что бесспорно улучшит качество твоего ПО под мобильные платформы: +скорость, +энергоэкономность.

#optimization #arm #asm
О обратной связи с автором этого канала, красивых цифрах и просто хвастовстве:
=========================
Phone: +7 987 111 1337
Автомобильный номер вида x777xx
Site: https://1337.xxx
=========================

#callback #contacts
0x1337 pinned «О обратной связи с автором этого канала, красивых цифрах и просто хвастовстве: ========================= Phone: +7 987 111 1337 Автомобильный номер вида x777xx Site: https://1337.xxx ========================= #callback #contacts»
dynamic_cast<void*>(T)
возвращает указатель на 'Самый Производный Класс' в иерархии!

#cxx #interesting
image_2019-09-18_15-24-00.png
29.1 KB
О том, почему компиляторы не так хороши, как тебе говорят^. Фиксится, кстати, заменой uint64_t на int64_t.

#optimization #asm #cxx
0x1337
image_2019-09-18_15-24-00.png
Ну и раз уж пошли такие тЁрки, вот тебе советец:
Работая с RT преобразованиями типов, обязательно проверяй генерируемый ASM код. Особенно, когда речь заходит о преобразованиях знаковых типов в беззнаковые. Интуитивно кажется что с беззнаковыми типами работать быстрее. Однако, это ловушка, которая очень круто показывает себя, например при преобразовании double->uint64_t.

#asm #cxx #missoptimization
Да, ты ведь знаешь, что static_cast<integer_type> из double / float типа, хотя и выполняется compile-time - дает накладные расходы в run-time? Неплохие такие расходы, я бы сказал!

#cxx #optimisation
instruction_tables.pdf
1.2 MB
Вот^ почитай на ночь.

#optimization #cxx #asm
Табличка с замерами Latency / Throughput, которой ну очень удобно пользоваться. Кстати, информация куда более полная чем у Агнера Фога:
https://uops.info/table.html

#optimization #asm
xor R, R - куда больше чем просто зануление регистра R. Дело в том, что процессор 'умный' и видя эту строчку может сделать вывод о том, что все дальнейшие действия с этим регистром не зависят от предыдущих. Другими словами, имея последовательность действий с регистром R, где каждое следующее действие зависит от предыдущего и зависит от R, процессор встретив xor R, R, делает вывод, что все то, что дальше будет происходить с R - не зависит от всего того, что было раньше и, таким образом, вместо того чтобы ждать результат прошлых вычислений, сможет начать выполнять будущие - параллельно, используя Register Renaming, Out - Of - Order Execution техники. Да, у процессора есть виртуальные регистры, к которым имеет доступ он и только он, и эти регистры он может сопоставлять с регистрами общего назначения, подменяя их.

#asm #interesting #optimization
Cortex-A53, увы не умеет в OOR execution, а вот его собрат, Cortex-A57 могЁт. Выбор, конечно очевиден, да и знать полезно.

#interesting
Something like that^

#interesting
Одно дело - разглагольствовать в чатиках и канале, другое - находить конкретные ошибки, весьма конкретных людей с Именем. Настоящим именем^. Ошибаться это нормально, но разве правки - не повод для радости, Приятель?

#asm #peter_cordes
arm_cortex_a55_software_optimization_guide_v3.pdf
558.7 KB
Продолжаем оптимизировать под мобилки^

#optimization_guide_arm_a55 #asm #mobile
fno-verbose-asm - если хотите отключить вывод комментариев в ASM листинге!

#basic #important
Ребята, как я и обещал - радую годным, авторским контентом. Увы, скидывать целиковые статьи, а точнее читать их тут - дело не из простых. Поэтому, сами статьи публикую 'где-то', а сюда скидываю ссылку. Так вот, авторский контент подъехал:

https://habr.com/ru/post/468581/

#publication #asm #cxx #optimization