Краткое содержание
Пост объясняет, как отказ от условных операторов (if) в коде повышает производительность процессора за счёт устранения ошибок предсказания ветвлений, и приводит примеры инструкций для ARM и x86_64.
Темы
оптимизация кода
архитектура процессоров
Теги
производительность
оптимизация
процессор
ARM
x86_64
программирование
low-level
Упомянутые сущности
ARM
x86_64
Apple M1
Полный текст
Если if вас замедляют, откажитесь от нихКлассический if заставляет блок предсказания гадать. При случайном распределении чисел процессор всё чаще ошибается. Конвейер сбрасывается, теряя ценные такты на повторном исполнении.Отказ от условных операторов восстанавливает производительность. Вместо ветвления применяется безусловное сохранение в память и условный инкремент — cinc для ARM или setle для x86_64. Линейный поток команд загружает ресурсы полностью, а скорость работы на Apple M1 возрастает в десять раз.
Другие посты из habr_com
habr_com
2026-05-14T12:01:41+00:00
Пост объясняет, что обучение word2vec в реалистичных режимах сводится к невзвешенной факторизации матриц и методу главных компонент (PCA), а векторы формируют ортогональные подпространства.
Читать