Как стать автором
Обновить

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

Время на прочтение6 мин
Количество просмотров23K
Всего голосов 55: ↑51 и ↓4+47
Комментарии15

Комментарии 15

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

Всем известные библиотеки могут у себя внутри использовать библиотеки, которые предоставляет Apple

Разработчики могут использовать Accelerate framework, а уж то, как там Apple с помощью сопроцессора ускоряет вычисления матриц, это ее личное дело.

Пруф на сравнение производительности:
nod.ai/comparing-apple-m1-with-amx2-m1-with-neon

Машинное обучение становится все более востребованным, похоже, это будет новым трендом развития IT на ближайшее будущее

Я к тому, что кросплатформенное приложение не станет брать accelerate framework из-за его привязанности к ОС. Как справедливо заметил VolCh выше, кросплатформенная библиотека (которой приложение спокойно пользуется везде) может уже использовать этот framework внутри себя на Mac, но вопрос — будет ли.

А почему нет? Большинство таких библиотек не брезгуют, насколько я знаю, проанализировать своё аппаратное и программное окружение и использовать лучшие способы из доступных. Сам так в юности проверял на наличие х87-го сопроцессора и вместо вызова библиотек вызывать команды непосредственно. А потом и библиотеки подтянулись — стали внутри себя проверять.

не станет брать
— смотря как брать. Например BLAS — это стандартный набор операций, интерфейс описан в заголовочных файлах, а реализация может быть любая. Например есть blas с оптимизацией под процессоры Intel, есть nvblas, которая на GPU матрицы умножает. Грубо говоря приложению нужно просто подсунуть оптимизированный бинарник dll/so/тд.перед запуском или при линковке.

Все время было интересно, почему операции с матрицами (сложение, умножение и другие) выполняются именно такими образами. В книжках везде было написано как делать, но почему именно так, нигде не было.

Это удобно.
Представим, что вам надо перевести вектор из одной системы координат в другую. Получится последовательность сложений и умножений. А теперь представим, что вы хотите проделать эту операцию дважды. Подобный способ записи позволит вам записать переход из первой системы во вторую и из второй в третью как умножение этих матричных операторов по определенным стандартным правилам.
Потом выяснится, что это определение «сильное», поскольку поддерживает аксиомы кольца над полем, где можно пользоваться ассоциативностью. А иногда и делить, если матрица обратима. Грубо говоря, такое определение обладает изрядной гибкостью.

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

Если кратко: такое определение дает хороший инструмент для всяких фокусов и решения прикладных штук. Альтернативные определения не обладали большей выразительностью, а лучшие подходы еще не изобретены.
Здесь не стоит писать про преимущество M1 (и вообще что-либо хорошее о компании Apple). Заминусуют сразу. По утверждению фанатиков x86, чип M1 не сравнится с процессорами Intel и AMD ни в одной категории. А то факт, что даже макбук Air с чипом М1 производительнее и автономнее, чем все предыдущие макбуки на базе Intel, всего лишь побочный эффект, видимо.
НЛО прилетело и опубликовало эту надпись здесь
А тем, кто перешел с Intel на M1 работать не надо? Они все типа блогеры и фанатики Apple что-ли?

Так я и не называю Intel гамном. До выхода M1 пользовался компьютерами исключительно на Intel, и не жаловался. После выхода M1, Apple показала, что мобильные процессоры Intel не такие уж и хорошие, как нам казалось раньше.

Повторяю, речь идет только о мобильных процессорах Intel, ни о какой войне между ARM и x86 речи нет.

Сам я переходил с Ice Lake, и разница просто огромная. Начиная простой работой с ОС, заканчивая всякими IDE как например xcode и IntelliJ IDEA.

Под фанатиками x86 имеются в виду те, кто ни разу не работал с M1, но убеждены, что этот чип отстой и хайп вокруг него это всего лишь маркетинг.
Как правило, люди пользующиеся продукцией Intel — флегматично-прагматичны, нам просто работать надо
как-то странно делить пользователей разных процессоров по менталитету. Да, относительно каждого нововведения существуют консервативно настроенные люди, и в конечном итоге они далеко не всегда оказываются правы. Но при чем тут конкретно intel?
а когда задаешь логичный вопрос «и че, ваш молоток может забивать все 100 типов гвоздей?», то фанбои резко начинают обвинять прагматиков то в ретроградстве, то в фанатизме, то еще черт знает в чем, потому что парировать нечем.
тут главное не забывать что не всем надо забивать эти нестандартные гвозди. Тем кому надо могут хоть на powerPC сидеть. И если пользователь выбирает устройство, которое лучше подходит для его задач, чего плохого если это внезапно окажется мак?

Ещё интересная статья с техническими деталями, правда на английском, от компании портирующей Linux на M1: https://corellium.com/blog/linux-m1

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

Последнее время что-то уже совсем много рекламы М1.
"Нейро" сопроцессоры давно известны человечеству, давно есть в других ARM-процессорах.


Что здесь такого впечатляющего и революционного? Это было впечатляюще в 2015, но не в 2020.


Слишком много marketing bullshit.

Что здесь такого впечатляющего и революционного?
возможно, производительность?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий