AV
Два года назад, перед моим первым докладом про SIMD, я любил разбирать Capstone-ом бинарники и смотреть какая нагрузка идет на какие регистры. Мы в HPC часто концентрируемся на микро-оптимизациях вдоль горячего пути прохода данных, но часто забываем, насколько много кода остается вне нашего поля зрения. Я прогнал простенький скрипт на паре моих Linux/MacOS машине с процами двух последних поколений и достаточно свежими бинарями. Заняло несколько часов, просмотрено было около 4000 бинарников. В итоге, SIMD регистров касается менее 1% процента общего пула инструкций. Почти все приходится на 128-битные инструкции. Подозреваю, что большая часть приходится на всякие memcpy примитивных стуктур вроде
{ uint64_t a, b; }.В статье подробные свежие результаты, код и ссылки на мой доклад пару лет назад. Позднее думаю выложить подобные сравнения, но по категориям софта и по версиям компиляторов.
https://unum.am/post/2021-11-21-simd-popularity/
