Soc apple m1 max

Секретный сопроцессор Apple M1: что это, зачем и как работает

Публикаций о сопроцессоре Apple Matrix (AMX) уже довольно много. Но большинство не особо понятны всем и каждому. Я же попытаюсь объяснить нюансы работы сопроцессора понятным языком.

Почему Apple не слишком распространяется об этом сопроцессоре? Что в нем такого секретного? И если вы читали о Neural Engine в SoC M1, у вас могут возникнуть затруднения в плане понимания, что такого необычного в AMX.

Но для начала вспомним базовые вещи (если вы хорошо знаете, что такое матрицы, а таких читателей, уверен, на Хабре большая часть, то первый раздел можете пропускать, — прим. перев.).

Что такое матрица?

Если по-простому, то это таблица с числами. Если вы работали в Microsoft Excel, то, значит, вы имели дело с подобием матриц. Ключевым отличием матриц от обычных таблиц с числами — в операциях, которые можно с ними выполнять, а также специфической сути. Матрицу можно представить в виде самых разных форм. Например, в виде строк, тогда это вектор-строка. Или в виде столбца, тогда это, что вполне логично, вектор-столбец.

Мы можем складывать, вычитать, масштабировать и умножать матрицы. Сложение — самая простая операция. Вы просто добавляете каждый элемент отдельно. Умножение немного сложнее. Вот простой пример.

Что касается прочих операций с матрицами, об этом можно почитать здесь.

Почему мы вообще заговорили о матрицах?

Дело в том, что они повсеместно используются в:

• Обработке изображений.
• Машинном обучении.
• Распознавании рукописного текста и речи.
• Сжатии.
• Работе с аудио и видео.

Что касается машинного обучения, то для этой технологии нужны производительные процессоры. И просто добавить несколько ядер в чип — не вариант. Сейчас ядра «заточены» под выполнение определенных задач.

Количество транзисторов в процессоре ограничено, соответственно, количество задач/модулей, которые можно добавить в чип, тоже ограничено. В целом, можно бы просто добавить еще ядер в процессор, но это просто ускорит выполнение стандартных вычислений, которые и так выполняются быстро. Поэтому в Apple решили пойти другим путем и выделить модули для обработки изображений, декодирования видео и выполнения задач машинного обучения. Эти модули — сопроцессор и ускорители.

В чем разница между сопроцессором Apple Matrix и Neural Engine?

Если вы интересовались Neural Engine, то, вероятно, знаете, что он также выполняет операции с матрицами для работы с задачами машинного обучения. Но если так, то зачем тогда понадобился еще и сопроцессор Matrix? Может быть, это одно и тоже? Я ничего не путаю? Разрешите мне прояснить ситуацию и рассказать, в чем же разница, объяснив, почему нужны обе технологии.

Главный процессор (ЦП), сопроцессоры и ускорители обычно могут обмениваться данными по общей шине данных. ЦП обычно контролирует доступ к памяти, в то время как ускоритель, такой как GPU, часто имеет собственную выделенную память.

Признаю, что в своих прежних статьях я использовал термины «сопроцессор» и «ускорители» в качестве синонимов, хотя это не одно и то же. Так, GPU и Neural Engine — ускорители разных типов.

В обоих случаях у вас есть специальные области памяти, которые ЦП должен заполнить данными, которые он хочет обработать, плюс еще одна область памяти, которую CPU заполняет списком инструкций, которые должен выполнить ускоритель. Процессору требуется время для выполнения этих задач. Приходится все это координировать, заполнять данные, а затем ждать получения результатов.

И подобный механизм годен для масштабных задач, а вот для малых тасков это уже перебор.

В этом преимущество сопроцессоров перед ускорителями. Сопроцессоры сидят и следят за потоком инструкций машинного кода, которые поступают из памяти (или, в частности, кеша) в ЦП. Сопроцессор вынужден реагировать на конкретные инструкции, которые они были заставлены обрабатывать. Между тем, ЦП в основном игнорирует эти инструкции или помогает облегчить их обработку сопроцессором.

Преимущество заключается в том, что инструкции, выполняемые сопроцессором, можно включить в обычный код. В случае GPU все иначе — программы шейдеров помещаются в отдельные буферы памяти, которые затем нужно явно переносить в GPU. Использовать для этого обычный код не получится. И как раз поэтому AMX отлично подходит для выполнения простых задач, связанных с обработкой матриц.

Нюанс здесь в том, что требуется определить инструкции в архитектуре набора инструкций (ISA) вашего микропроцессора. Таким образом, при использовании сопроцессора применяется более тесная интеграция с процессором, чем при использовании ускорителя.

Читайте также:  Как скрыть посещение вконтакте через айфон 2021

Создатели ARM, кстати, долгое время сопротивлялись добавлению кастомных инструкций в ISA. И это — одно из преимуществ RISC-V. Но в 2019 году разработчики сдались, заявив однако следующее: «Новые инструкции сочетаются со стандартными инструкциями ARM. Чтобы избежать фрагментации программного обеспечения и поддерживать согласованную среду разработки программного обеспечения, ARM ожидает, что клиенты будут использовать пользовательские инструкции в основном в вызываемых библиотечных функциях».

Это может быть хорошим объяснением отсутствию описания AMX-инструкций в официальной документации. ARM просто ожидает от Apple того, что компания включит инструкции в библиотеках, предоставленных клиентом (в этом случае Apple).

А в чем отличие матричного сопроцессора от векторного SIMD?

В общем-то не так сложно спутать матричный сопроцессор с векторной SIMD-технологией, которая есть в большинстве современных процессоров, включая ARM. SIMD расшифровывается как Single Instruction Multiple Data.

SIMD позволяет увеличить производительность системы в случае необходимости выполнения одной и той же операции над несколькими элементами, что тесно связано с матрицами. В общем-то, инструкции SIMD, включая инструкции ARM Neon или Intel x86 SSE или AVX, часто используются для ускорения умножения матриц.

Но векторный движок SIMD — часть ядра микропроцессора, так же как и ALU (модуль арифметической логики) и FPU (модуль с плавающей запятой) являются частью ЦП. Ну а уже декодер инструкций в микропроцессоре «решает» какой функциональный блок активировать.

А вот сопроцессор — это отдельный физический модуль, а не часть ядра микропроцессора. Раньше, например, Intel’s 8087 был отдельным чипом, который предназначался для ускорения операций с плавающей запятой.

Вам может показаться странным, что кто-то разработал такую сложную систему, с отдельным чипом, который обрабатывает данные, идущие от памяти в процессор, с целью обнаружить инструкцию с плавающей запятой.

Но ларчик открывается просто. Дело в том, что в оригинальном 8086 процессоре было всего 29 000 транзисторов. У 8087 их было уже 45 000. В конечном итоге технологии позволили интегрировать FPU-модули в основной чип, избавившись от сопроцессоров.

Но почему AMX не является частью ядра Firestorm в М1 — не совсем понятно. Может быть, Apple просто решила вывести нестандартные ARM-элементы за пределы основного процессора.

Но почему про AMX не особо говорят?

Если AMX не описан в официальной документации, как мы вообще смогли о нем узнать? Спасибо разработчику Дугаллу Джонсону, кто выполнил прекрасный реверс-инжиниринг M1 и обнаружил сопроцессор. Его работа описана вот здесь. Как оказалось, для математических операций, связанных с матрицами Apple создала специализированные библиотеки и/или фреймворки вроде Accelerate. Все это включает следующие элементы:

vImage — обработка изображений более высокого уровня, такая как преобразование между форматами, манипулирование изображениями.
BLAS — своего рода отраслевой стандарт линейной алгебры (то, что мы называем математикой, имеющей дело с матрицами и векторами).
BNNS — используется для запуска нейронных сетей и обучения.
vDSP — цифровая обработка сигналов. Преобразования Фурье, свертка. Это математические операции, выполняемые при обработке изображения или любого сигнала, содержащего звук.
LAPACK — функции линейной алгебры более высокого уровня, например, решение линейных уравнений.

Джонсон понимал, что именно эти библиотеки будут использовать сопроцессор AMX для ускорения вычислений. Поэтому он разработал специализированный софт для анализа и мониторинга действий библиотек. В конечном итоге ему удалось обнаружить недокументированные инструкции машинного кода AMX.

А Apple не документирует все это потому, что ARM LTD. старается не особо афишировать информацию. Дело в том, что если кастомные функции действительно будут широко применяться, это может привести к фрагментации экосистемы ARM, о чем и говорилось выше.

У Apple появляется возможность, не особо афишируя все это, позже изменить работу систем при необходимости — например, удалять или добавлять AMX-инструкции. Для разработчиков достаточно платформы Accelerate, все остальное система сделает сама. Соответственно, Apple может контролировать как оборудование, так и ПО для него.

Преимущества сопроцессора Apple Matrix

Здесь много всего, отличный обзор возможностей элемента сделала компания Nod Labs, которая специализируется на машинном обучении, интеллекте и восприятии. Они, в частности, выполнили сравнительные тесты производительности AMX2 и NEON.

Как оказалось AMX в два раза быстрее выполняет необходимые для выполнения действий с матрицами операции. Это не значит, конечно, что AMX лучше всех, но для машинного обучения и высокопроизводительных вычислений — да.

В качестве вывода можно сказать, что сопроцессор Apple — впечатляющая технология, которая дает Apple ARM преимущество в задачах машинного обучения и высокопроизводительных вычислений.

Источник

Apple анонсировала M1 Pro и M1 Max: гигантские новые SoC на архитектуре ARM с полной производительностью

Сегодняшний основной доклад Apple Mac был очень насыщенным — компания анонсировала новую линейку устройств MacBook Pro на базе двух различных новых SoC в линейке Apple Silicon: M1 Pro и M1 Max.

Читайте также:  Почему вылетает алиэкспресс с айфона

M1 Pro и Max представляют собой продолжение прошлогоднего M1, процессора Mac первого поколения Apple, который стал первым этапом для Apple в реализации планов по замене процессоров на архитектуре x86 чипами собственного дизайна. M1 был успешным для Apple, продемонстрировав фантастическую производительность при невиданной доселе энергоэффективности на рынке ноутбуков. Хотя M1 достаточно быстрый, это все еще был небольшой SoC. Он предназначался, в первую очередь, для таких устройств, как iPad Pro. Соответственно, у него более низкий TDP, уступающий более производительным и мощным чипам от конкурентов.

Сегодняшние два новых чипа стремятся изменить эту ситуацию. При этом Apple делает все возможное для повышения производительности, увеличивая количество ядер процессора и графического процессора, плюс инвестируя в разработку электронных компонентов. Компания вкладывает в это направление весьма немалые средства.

M1 Pro: 10-ядерный процессор, 16-ядерный графический процессор, 33,7 млрд транзисторов в 245 мм 2

Первым из двух чипов, которые были анонсированы, был M1 Pro. Он стал основой для того, что Apple называет бескомпромиссными SoC для ноутбуков.

Apple начала презентацию с показа корпусировки SoC, M1 Pro сохраняет собственный дизайн корпусировки. Apple корпусирует чип SoC вместе с чипами памяти на одной органической печатной плате, что контрастирует с другими традиционными чипами, такими как AMD или Intel, где используются отдельные модули для DRAM. Подход Apple, вероятно, значительно повышает энергоэффективность и компактность.

Компания рассказала о том, что она удвоила пропускную способность шины памяти для M1 Pro по сравнению с M1. Тем самым завершен переход от 128-битного интерфейса LPDDR4X к новому 256-битному интерфейсу LPDDR5, с заявленной пропускной способностью памяти до 200 ГБ/с. Мы не знаем, является ли эта цифра точной или приблизительной, но стандарт LPDDR5-6400 как раз соответствует 204,8 ГБ/с.

В презентации Apple продемонстрировала снимки как M1 Pro, так и M1 Max, чтобы мы увидели макет чипа и деление на блоки. Начнем с контроллеров памяти, которые теперь в углах SoC, а не по краям, как на M1. Из-за увеличенной ширины интерфейса контроллеры памяти стали занимать довольно большую часть SoC. Еще более интересным является тот факт, что Apple теперь, по-видимому, использует два блока кэша системного уровня (SLC) непосредственно за контроллерами памяти.

Блоки кэша на системном уровне Apple отличаются тем, что обслуживают весь SoC, и способны увеличить пропускную способность, уменьшить задержку или просто сэкономить электроэнергию, избегая транзакций с памятью вне кристалла, что значительно повышает общую энергоэффективность. Этот блок SLC нового поколения выглядит совсем иначе, чем у M1. Ячеек SRAM больше, чем в M1, поэтому, хотя мы не можем точно подтвердить это прямо сейчас, это может означать, что в каждом блоке SLC 16 МБ кэша — для M1 Pro это будет 32 МБ общего кэша SLC.

Что касается процессора, Apple сократила количество энергоэффективных ядер с 4 до 2. Мы не знаем, будут ли эти ядра похожи на ядра M1 по эффективности или Apple приняла IP нового поколения от A15 SoC — но ясно, что новый iPhone SoC имеет некоторые более крупные микроархитектурные изменения.

Что касается производительных ядер, Apple удвоила их количество до 8. Производительные ядра Apple были чрезвычайно впечатляющими на M1, однако отставали от других 8-ядерных SoC с точки зрения общей многопоточной производительности. Удвоение ядер должно продемонстрировать огромное повышение производительности в многопотоке.

На снимке мы видим, что Apple зеркалирует два 4-ядерных блока, кэши L2 также зеркалируются. Хотя Apple пишет 24 МБ L2, я думаю, что это скорее конфигурация 2×12 МБ аналогично конфигурациям AMD. В таком случае синхронизация двух кластеров производительных ядер будет проходить через внутреннюю шину и SLC. Здесь можно лишь предполагать, но это предположение имеет смысл, учитывая показанный макет.

Что касается производительности процессора, Apple провела некоторые сравнения с конкурентами. В частности, сравниваемые здесь SKU Core i7-1185G7 от Intel и Core i7-11800H, 4-ядерные и 8-ядерные варианты новейших процессоров Intel Tiger Lake по техпроцессу 10nm ‘SuperFin’.

Apple утверждает, что в многопоточной производительности новые чипы значительно превосходят любые конкурентные чипы от Intel, причем при более низком энергопотреблении. Представленные кривые производительности и мощности показывают: при равном энергопотреблении в 30 Вт новые M1 Pro и Max в 1,7 раза быстрее по пропускной способности процессора, чем 11800H, кривая мощности которого чрезвычайно крутая. В то же время при равных уровнях производительности — пиковой у 11800H — новый M1 Pro/Max достигает тех же показателей при энергопотреблении ниже на 70%. Эти результаты на голову выше того, что есть у Intel.

Читайте также:  Защита от звонков спама айфон

Наряду с мощными процессорными блоками Apple также радикально масштабирует свою кастомную архитектуру GPU. M1 Pro теперь оснащен 16-ядерным графическим процессором с заявленной вычислительной способностью 5,2 терафлопс. Он идет в паре с гораздо более широкой шиной памяти и, предположительно, 32 МБ SLC. Это аналогично подходу AMD с их GPU Infinite Cache.

Производительность графического процессора Apple, как утверждается, значительно превосходит производительность интегрированной графики конкурентов предыдущего поколения. По этой причине компания решила провести прямые сравнения с дискретной графикой ноутбуков среднего класса — GeForce RTX 3050 Ti 4 ГБ. По результатам тестов чип от Apple показал аналогичную производительность, используя на 70% меньшую мощность. Правда, неясно что такое 30 Вт — является ли это общей мощностью SoC или системы. Возможно, Apple просто сравнивает сам блок графического процессора.

Наряду с GPU и CPU, Apple также отметила значительно улучшенный медиадвижок, который теперь может аппаратно ускорять декодирование и кодирование ProRes и ProRes RAW, что пригодится создателям контента и профессиональным видеографам. Apple Mac традиционно хороши для работы с видео, но аппаратно ускоренные движки для форматов RAW были бы киллер-фичей, которая станет решающей для этой аудитории.

M1 Max: 32-ядерное GPU чудовище на 57 миллиардов транзисторов и 432 мм 2 .

Кроме M1 Pro, Apple также рассказала о «большем брате» — M1 Max. В то время как M1 Pro догоняет и опережает конкурентные ноутбуки с точки зрения производительности, M1 Max предоставляет то, чего раньше еще не было: графический процессор «‎с турбонаддувом» на 32 ядра. По сути, это больше не SoC со встроенным графическим процессором, а GPU с встроенным SoC.

Корпусировка для M1 Max тоже отличается — чипы DRAM увеличились с 2 до 4, что соответствует увеличению ширины интерфейса памяти с 256-бит до 512-бит. Apple рассказывает о впечатляющей пропускной способности в 400 ГБ/с. Если это LPDDR5-6400, было бы более точным указать 409,6 ГБ/с. Такая пропускная способность неслыханна в SoC, но является нормой для производительных графических чипов.

M1 Max выглядит довольно своеобразно — во-первых, вся верхняя часть чипа над графическим процессором очень похожа на M1 Pro, указывая на то, что Apple повторно используют большую часть дизайна, и что вариант Max просто растет вниз.

Добавлены два 128-битных блока LPDDR5, причем количество блоков SLC растет вместе с ними. Если бы было 16 МБ на блок, то это представляло бы собой 64 МБ общего кэша для всего SoC. Помимо очевидного использования в GPU, мне интересно, чего могут достичь процессоры с помощью такой гигантской пропускной способности памяти.

M1 Max впечатляет количеством транзисторов. Так, Apple сообщила, что у M1 Pro их количество достигает 33,7 млрд, в то время как M1 Max включает уже около 57 млрд транзисторов. AMD, в то же время, с гордостью рассказывает о 26,8 млрд транзисторов в 7-нм графическом чипе Navi 21 на 520 мм 2 . У Apple здесь в два раза больше транзисторов при меньшем размере чипа благодаря использованию передового 5-нм техпроцесса от TSMC. Даже по сравнению с самым большим 7-нанометровым чипом NVIDIA с 54 млрд транзисторов в серверных GA100 — M1 Max имеет большее количество транзисторов.

Что касается размеров чипов, Apple разместила на одном из слайдов M1, M1 Pro и M1 Max рядом друг с другом, и они, похоже, имеют масштаб 1:1. В этом случае M1, который мы уже знаем, составляет 120 мм 2 , соответственно M1 Pro 245 мм 2 , а M1 Max около 432 мм 2 .

Большая часть чипа занята 32-ядерным графическим процессором, для которого Apple заявляет производительность в 10,4 терафлопс. Похоже, что Apple зеркалировала их 16-ядерный GPU. Первое, что приходит на ум — это 2 графических процессора, работающих в унисон, и какая-то общая логика между двумя половинами графического процессора. Мы сможем рассказать больше, как только проверим поведение системы на программном уровне.

С точки зрения производительности Apple успешно может конкурировать с лучшими предложениями на рынке, сравнивая производительность M1 Max с производительностью мобильного GeForce RTX 3080 при меньшей мощности на 100 Вт (60 Вт против 160 Вт). M1 Max и тут превосходит дискретный GPU NVIDIA, при этом потребляя на 40% меньше энергии.

Презентация нового поколения Apple Silicon стала тем, чего мы ждали больше года. Я думаю, что Apple удалось не только оправдать ожидания, но и значительно превзойти их. Как M1 Pro, так и M1 Max кардинально отличаются от всего, что мы когда-либо видели в области ноутбуков. Если M1 был неким признаком успеха Apple в их кремниевых начинаниях, то два новых чипа превосходят любые варианты, что мы видели у конкурирующих компаний.

Источник

Оцените статью