8 ядер CPU, 8 ядер GPU и 16 ядерный нейрочип. Всё это звучит внушительно и всё это главные цифры, которые нам рассказывала Apple во время презентации своего первого ARM-чипа для компьютеров — M1.
Почему за такими чипами будущее? И как Apple смогла его доставить к нам домой уже сегодня? Отвечаем в нашем материале!
Началось всё с релиза чипа, а потом и первых устройств на нём — MacBook Air с пассивным охлаждением, Mac mini и MacBook Pro 13". Все они работают на одном и том же кристалле. Рассказ о каждом из этих чудесных компьютеров сопровождался графиками, в которых Apple M1 преподносился чуть ли не как самый мощный чип на рынке.
С каким чипом Купертиновцы сравнивали своё детище первое время было непонятно. Журналисты сделали предположение, что речь шла об Intel Core i3 и Intel Core i5, которые стояли в базовых версиях вышеупомянутых компьютеров прошлых поколений. Позже на страницах новых продуктов под звёздочкой уточнили подробности — оказалось, что для сравнения брали чипы Intel Core i3 и Intel Core i7.
12 ноября в интернете появились первые результаты тестирования новых устройств в Geekbench и Apple M1 оказался мощнее Intel Core i9, который стоит в топовом MacBook Pro 16" и мощнее Intel Xeon, на котором работает Mac Pro 2013 года. И всё это в мультиядерном тесте! Мощнее только новые iMac Pro и Mac Pro.
Если посмотреть на результаты в одноядерном тестировании, то тут Apple M1 вообще нет равных. Даже последнее поколение AMD Ryzen 9 уступает в производительности Apple M1. Но в многоядерном тестировании, относительно всей «больницы» Apple M1 есть куда стремиться, но это ARM-чип, который потребляет энергии в много раз меньше тех железок. К сожалению, пока Apple M1 не может использоваться в серьёзных рабочих станция и самом максимальном MacBook Pro 16" — об этом чуть позже.
Итак, процессор, который нам показала Apple — это система на кристалле (SoC). Не сказать, что это какое-то новшество, потому что по такому же принципу делаются чипы для мобильных устройств.
На плате располагается несколько блоков всякого интересного. В первую очередь это блок CPU: 8 вычислительных ядер, которые работают по принципу big.LITTLE, когда первые четыре ядра являются малоэффективными и используются во время выполнения простых задач, а другие четыре ядра для сложных. Это, кстати, и делает чип Apple энергоэффективнее x86-аналогов от Intel и AMD. В то время как у них мощность регулируется снижением и потреблением частоты, у ARM переключением вычислительных блоков. Из-за этого компьютеры на Intel и AMD греются и явно неспособны выдать до 20 часов автономной работы, а именно столько будет работать новый MacBook Air. Если бы Apple M1 всегда работал за счёт высокопроизводительных ядер, тогда он бы мало чем отличался от x86-процессоров.
8-ядерная графическая система, которая потребляет меньше энергии, а производительности даёт в два раза больше в сравнении с интегрированной графикой Intel. Выходит, что это примерно уровень Nvidia 1050.
До 16 гигабайт оперативной памяти и да, они тоже располагаются прямо на этой маленькой площади. Это большое достижение, потому что при обработке каких-то задач процессору не нужно обращаться к отдельному блоку ОЗУ на материнской плате, чтобы считать или записать какие-то данные.
Также в Apple M1 стоит 16-ядерный нейропроцессор и это самый мощный нейропроцессор в компьютерах на сегодня. Ещё модуль шифрования, под который раньше был выделен отдельный чип Т2, контроллер Thunderbolt, модуль ввода-вывода и сигнальный процессор.
При этом чип выполнен по 5-нанометровому техпроцессу, а всего на нём располагается 16 миллиардов транзисторов. Выходит, что один транзистор процессора Apple M1 тоньше нити ДНК. Она имеет толщину 10 нм!
Плюс, что тоже достаточно важно, — это энергопотребление. Apple M1 требует всего 15 ВТ, в то время как Intel Core i7, с которым Apple сравнивала свой чип на презентации — 125 Вт. Этого удалось добиться за счёт компоновки аппаратных составляющих и такие блага даёт архитектура ARM? Почему? Давайте разбираться дальше.
Любой процессор занимается обработкой задач — есть вводные данные, которые необходимо преобразовать и вывести результат преобразования. Соответственно, чем больше и быстрее процессор способен провести таких преобразований, тем лучше. Это общий принцип для всех чипов. Но разница в них всё равно есть.
Началось это с середины 40-х годов XX века, когда появились первые компьютеры и с каждым годом их количество только росло. Разные линейки создавались под разные задачи и требовали своего подхода в программировании. То есть, написав программу для какого-нибудь ENIAC, вы не смогли бы запустить её на IBM. Оптимизацией софта программисты тогда занимались нечасто, потому что машинный код, состоящий из нулей и единиц, приходилось писать буквально вручную на листах бумаги. Где-то неправильно поставил единичку? Бах! Программа уже не работала. Однако потом появились языки высокого уровня, команды в которых программисты вводили на привычном нам человеческом языке, а интерпретатор переводил команды на низкоуровневый язык. То есть вместо того чтобы писать "0101010001...01010", стоило лишь ввести "print: 'hello world';", а интерпретатор переводил это в двоичный код.
С появлением языков программирования задача с оптимизацией софта сильно проще не стала. Каждый производитель в то время считал именно свою платформу самой лучшей и делал для неё какую-нибудь свою архитектуру процессора. Это привело к изобилию разных платформ, пока не пришёл Intel и не сказал: «так ребята, вот вам x86-архитектура — самая классная, самая удобная, пользуйтесь на здоровье». Первым x86-чипом, кстати, стал Intel 8086 в 1978 году.
Такими популярными x86-чипы стали благодаря своей микроархитектуре. На фоне других форматов x86 предлагал наиболее оптимальные и эффективные инструкции обработки данных. Называются они CISC (Complex Instruction Set Computing). Что это такое?
Это набор команд, которые понимает процессор, благодаря которым программистам не нужно каждый раз в мелочах расписывать план действий чипа для обработки введённых данных. Чтобы программистам не расписывать шаг за шагом строчку, которая выводит на экран слово «Привет», процессор понимает сразу, куда направить поток данных.
Иначе это могло превратилось в лабиринт и программисту пришлось бы прописывать: из этого блока данных букву «П» переслать по этой дорожке на этот блок, а потом передать информацию видеокарте, а потом по дорожке номер 15 дать информацию на вывод в монитор. И так для каждой буквы. Жуть! Это ещё крайне упрощённый пример!
Плюс для каждого бита информации, который необходимо обработать, x86-процессор не скупится и выдаёт полную мощность. Безусловно, это здорово, но неэффективно, особенно в мобильных устройствах и ноутбуках.
ARM появилась в 1985 году, как упрощённая альтернатива x86. В ней используется упрощённый набор инструкций RISC (reduced instruction set computer). Команды в этой микроархитектуре короче, по сравнению с CISC, и соответственно из-за этого ARM-чипам требуется меньше времени и энергии на обработку каких-то базовых задач, под которые они в целом и были первоначально заточены.
Из-за того, что процессор работает с упрощёнными инструкциями ему не нужны «тяжеловесные» вычислительные блоки. Хватит того, что будет нужно большинству пользователей. А за счёт меньших размеров на пластине можно разместить несколько вычислительных блоков — с меньшей и большей мощностью для простых и сложных задач соответственно. Плюс, в них нет ничего лишнего.
По-сути, вся разница заключается в микроархитектуре и на фоне ARM x86 с расширенной микроархитектурой выглядит вроде как выигрышнее. Но так ли это на самом деле?
Современные чипы под своим капотом являются по сути гибридными. Приоритет отдаётся тем же инструкциям обработки информации, которые появились в RISC и ARM, а пережитки прошлого, которыми x86 славились в 80-е и 90-е, отводятся на второй план.
Любой современный процессор, Intel или AMD, условно говоря, примерно на 80% состоит из типичных инструкций RISC и только на 20% из CISC. А поступающие в него CISC-инструкции разбиваются алгоритмами на микроинструкции (micro-ops) и обрабатываются RISC ядрами. Так что ARM, очень условно, конечно, проник в чипы Intel и AMD. Соответственно софт, написанный под x86, можно легко оптимизировать под ARM. Сегодня это не составит большого труда.
Подытоживая. В x86 заложены комплексные, длинные инструкции для решения тяжёлых задач, из-за чего они больше и сложнее, поэтому они потребляют больше энергии и чаще греются. ARM же выполняет задачи короткими командами, а для каких-то сложных задач алгоритмы способны раскладывать их на несколько простых. Поэтому в ARM-чипах не нужно размещать столько вычислительных блоков, а заместить их двумя комплексами ядер — 4 высокоэффективными и 4 маломощными. Как и поступила Apple, сделав Apple M1 таким же мощным, но энергоэффективным.
Во-первых, мне кажется, что в 2021-ом компания представит ещё какие-нибудь Pro и Pro-max версии чипа M1. Во-вторых, пока что существующие видеокарты или сам чип не умеет работать с дискретной графикой. Но это дело времени, можете быть уверены. Intel с AMD тоже наверняка не будут стоять на месте.
Много слов было написано, а потому стоит тезисно закрепить всё вышесказанное:
Неужели вы и правда верите, что чип с пассивным охлаждением будет чуть ли не мощнее десктопного 16-ядерного монстра? Дождитесь нормальных тестов, тогда пишите статьи.
И да, что такое Nvidia 1060 Ti?
Забавно что у истоков арм стояла в том числе аппл, + еще в 90х аппл/ibm/motoorola создали альянс "Организаторы альянса считали, что процессоры CISC от Intel — эволюционный тупик в развитии микропроцессорной техники. И прогнозировали рост RISC технологий в ближайшие несколько лет. "
1. " Первым x86-чипом, кстати, стал Intel i386 в 1985 году." - ага, ага - первым был как раз 8086, откуда и название пошло, был еще 80286 если че (сам на таком работал)
2. "Команды в этой микроархитектуре короче, по сравнению с CISC, и соответственно из-за этого ARM-чипам требуется меньше времени и энергии на обработку каких-то базовых задач, под которые они в целом и были первоначально заточены. " - дурь какая-то, вы бы сначала вопрос как следует изучили - да, в RISC набор команд сильно меньше и проще, но порой чтобы сделать то же самое, что и в CISC делает одна команда, надо написать сильно больше RISC команд, поэтому их тупо больше будет исполняться и не факт что быстрее. Проблемы с энергопотреблением у интела и амд не в наборе команд CISC а в том что тупо там куча старого ненужного говна которое должно выполняться а выкинуть его нельзя по соображениям совместимости