Код один, задача одна — значит, и результат должен быть одинаковым 🧠 >> Звучит логично. Жаль, процессоры не в курсе… Всё дело в архитектуре: сейчас развиваются x86, ARM, RISC-V и отечественные решения. И разработчику важно не только написать код, но и понимать, на каком «железе» он будет работать. 🙌 Создавать ПО с учётом особенностей процессоров и ИИ-ускорителей учатся на направлении «Сопряжённая разработка программного и аппаратного обеспечения». 👉 Как всё это работает на практике, рассказал Александр Беляев, академический руководитель программы: Разная скорость одного и того же кода объясняется архитектурными особенностями: 🔘 SIMD-блоки (AVX-512 у x86 или NEON у ARM) позволяют одной инструкцией обрабатывать сразу несколько чисел, размер и иерархия кэшей определяют, как часто процессор простаивает в ожидании данных из медленной памяти, предсказание ветвлений и внеочередное выполнение дают возможность загружать конвейер работой даже при непредсказуемом коде. Архитектура влияет не только на выполнение обычных инструкций, но и на обработку специализированных задач. >> Например, в чипах Apple M-серии есть отдельные аппаратные блоки для обработки видео, которые помогают ускорять работу с кодеками ProRes и H.265. ✏️ Показательный пример именно оптимизации под архитектуру — FFmpeg: функцию rangedetect8_avx512 переписали на ассемблере с использованием инструкций AVX-512, и она стала работать в 100 раз быстрее; на процессорах без AVX-512 вариант с AVX2 даёт ускорение на 64%. А вы замечали, что одна и та же программа на разных устройствах работает с разной скоростью? ✅ — да, сталкивался: 🤟 — никогда не обращал внимания… #ИнтересноеНЕЙМАРК