Большую часть того, что вы слышите о «запуске модели ИИ», связано с каким-либо GPU, но не каждая задача ИИ подходит для такого оборудования. Меньшие модели или операции, чувствительные к задержкам для одного пользователя, могут выиграть от запуска на центральном процессоре (CPU), поскольку это позволяет избежать накладных расходов на пересылку данных на GPU и обратно. Существует также множество ситуаций, когда GPU изначально недоступен, или же это скромное интегрированное решение с ограниченными возможностями. Недавно Intel и AMD опубликовали полную спецификацию расширений ACE для CPU, которые упрощают и делают более энергоэффективным выполнение вышеупомянутых задач ИИ на процессорах x86. ACE предлагает технический стандарт, который использует существующие регистры AVX10, но добавляет кремний, предназначенный для матричного умножения. Это дает множество преимуществ, но ключевыми являются лучшая энергоэффективность, упрощение разработки и оптимизации, а также использование 512-битных входов AVX. Последнее обеспечивает простую интеграцию с существующими разработками, устраняя необходимость в входах, специфичных для ACE.
Матричное умножение — это краеугольный камень рабочих нагрузок ИИ: берется таблица чисел, и по всему массиву выполняется цикл умножения-сложения. Это всегда было возможно на любом CPU, хотя и с ограниченной скоростью. Даже сегодня выполнение этих циклов потребляет много энергии, даже при использовании инструкций умножения-накопления AVX10 в x86 — что технически является обходным путем, поскольку AVX не был разработан с учетом умножения 2D-матричных операций.
При том же количестве входных векторов ACE может выполнять в 16 раз больше операций по сравнению с AVX10. Следует отметить, что это не обязательно означает 16-кратное ускорение, поскольку это будет зависеть от каждой отдельной реализации, но разумно ожидать, что Intel и AMD выделят больше кремния для этой задачи в будущих разработках для повышения производительности. Кроме того, поскольку каждая инструкция ACE выполняет больше работы, чем эквивалентный цикл AVX10, сразу же снижаются накладные расходы на инструкции CPU и потенциально улучшается использование пропускной способности оперативной памяти.
Преимущества выходят далеко за рамки простого использования меньшего количества инструкций для одного и того же действия. ACE задуман как независимый от реализации, что означает, что фреймворки машинного обучения и их базовые библиотеки (PyTorch, TensorFlow) могут написать один путь кода вместо нескольких вариаций в зависимости от базового оборудования и степени поддержки AVX.
ACE нативно поддерживает практически все типы данных, используемые в операциях машинного обучения (включая, но не ограничиваясь INT8, INT32, FP8, FP16, FP32, BF16), но также может нативно использовать форматы с масштабированием блоков MX от Open Compute Project, чего не предоставляет AVX10. Разработчики также смогут перенести некоторые рабочие нагрузки, специфичные для NPU, обратно на CPU, когда им нужно что-то сделать быстро и немедленно. В таких ситуациях отсутствие необходимости разбираться в том, что каждый NPU отличается, также является огромным преимуществом, поскольку ACE предлагает единую цель для оборудования x86.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Bruno Ferreira




