Сделать невозможное: чип Apple M1
В ноябре 2020 года Apple представила M1 — первый в истории компании чип, разработанный и оптимизированный специально для Mac и macOS. Спустя год результаты исследований позволяют с уверенностью говорить, что он многократно повысил производительность, энергоэффективность и время автономной работы использующих его устройств Apple.
Инновационная система М1 сменила процессоры Intel, поколениями которых оснащались Mac. Традиционно в Мас использовалось несколько микросхем для центрального процессора, контроллеров ввода-вывода, безопасности и других функций, собранных на материнской плате. М1 — первая система с абсолютно новым уровнем интеграции.
Она впервые объединила несколько мощных технических компонентов на едином кристалле Apple Silicon (SoC). Среди них — центральный процессор, оперативная память, графический процессор, система машинного обучения Neural Engine, процессор обработки сигнала изображения, подсистема для защиты конфиденциальных данных пользователя Secure Enclave и другие. Сделать это позволила передовая 5-нанометровая технология производства, при которой возможно более плотное размещение транзисторов. Чип М1 впервые для Apple вмещает 16 миллиардов транзисторов. В результате сокращаются затраты энергии, а скорость прохождения сигнала возрастает.
Центральный процессор чипа М1 включает четыре ядра производительности для сценариев с высокой нагрузкой и четыре ядра для повышения эффективности. Ядра производительности отвечают за максимально эффективное и быстрое выполнение одно- и многопоточных процессов. Ядра эффективности оптимизируют выполнение простых задач и расход энергии. Вместе восемь ядер увеличивают производительность на ватт центрального процессора до рекордных показателей, а их вычислительной мощности хватает на самые ресурсоемкие процессы.
Встроенный графический процессор, тестирование которого позволяет Apple говорить о нем как о самом быстром в мире (2,6 терафлопс), также имеет восемь ядер. В максимальной конфигурации он способен обрабатывать одновременно до 25 тысяч потоков данных.
Еще одна инновация, которую Apple применила в чипе М1, — это архитектура объединенной памяти. Благодаря ее использованию все технические компоненты чипа, например, центральный и графический процессоры, могут обращаться к одним и тем же данным без их копирования в отдельные пулы памяти. Это, кроме прочего, обеспечивает высокую пропускную способность и минимальную задержку при обращении.
Итак, по сути, чип М1 — это автономный компьютер в виде микросхемы. Объединяя компоненты на одном кристалле, он позволяет новым Мас работать быстрее и эффективнее, чем устройствам предыдущего поколения, что подтверждают многочисленные тесты производительности.
С чипом М1 8-ядерный процессор работает до трех раз продуктивнее. Это в значительной степени ускоряет выполнение всех сложных задач, в том числе компиляцию программного кода и обработку графики. Однако у новых Мас выше не только мощность, эффективность и скорость вычислений. Значительно изменились и показатели производительности:
- скорость машинного обучения выросла до 15 раз;
- время отклика в web-приложениях сократилось до 50%;
- скорость отображение графики в браузере выросла до двух раз.
Новые версии операционной системы macOS на устройствах с чипом М1 поддерживают больше приложений, в том числе бета-версии. Если приложение пока не оптимизировано для чипа М1, его можно запустить благодаря эмулятору Rosetta 2. Одна из главных новинок, которая порадует разработчика для iOS, — это возможность открывать приложения для iPhone и iPad на своей рабочей машине без запуска дополнительных симуляторов.
Разработчики, использующие технологии машинного обучения, смогут выйти на новый уровень благодаря системе Apple Neural Engine. Это 16-ядерный сопроцессор, система, предназначенная для ускорения машинного обучения. Она способна выполнять до 11 триллионов операций в секунду.
Отдельно стоит отметить уникальные возможности, упрощающие удаленную работу с новыми устройствами Мас. Развертывание софта происходит автоматически, а инфраструктура управляется с помощью системы MDM. Это, по данным расчетов Forrester, значительно сокращает затраты на работу технических отделов. Благодаря тому, что технические компоненты чипа М1 и новые версии macOS максимально энергоэффективны, время автономной работы у отдельных моделей увеличено до 20 часов. Наконец, новая версия сопроцессора Secure Enclave и контроллер хранилища с AES-модулем для шифрования данных обеспечивают максимальный уровень безопасности.
В настоящее время чипом М1 оснащены MacBook Air, 13-дюймовый MacBook Pro, Mac mini и 24-дюймовый iMac. В течение ближайших двух лет с момента презентации чипа М1 в ноябре 2020 года компания Apple планирует перевести на него все остальные модели своих устройств Mac.
MacBook Air — в истории этой модели оснащение чипом М1 стало самым значительным усовершенствованием. Как сообщает в отчете о своем исследовании Forrester Research, разработчики отмечают, что качество работы обновленного устройства сравнимо с MacBook Pro. MacBook Air превратился в машину, которой доступны профессиональные задачи и работа со специальным софтом. Энергоэффективность чипа М1 позволила обойтись без использования охлаждающих вентиляторов, поэтому MacBook Air работает абсолютно бесшумно.
MacBook Pro 13 дюймов стал самым быстрым и компактным профессиональным ноутбуком. Он позволяет создавать приложения в Xcode до 2,8 раза быстрее, а скорость выполнения задач машинного обучения благодаря чипу М1 выросла до 11 раз. Благодаря рекордной производительности на ватт чипа M1 разработчики, использующие эту модель, могут написать в четыре раза больше программного кода за один период работы без подзарядки. Обновленный MacBook Pro обеспечивает высочайший уровень безопасности благодаря сопроцессору Secure Enclave, встроенному в чип М1.
Mac mini также многократно расширил возможности благодаря чипу М1. Он позволяет создавать приложения в Xcode до 3 раз быстрее, а скорость обработки графики выросла до 6 раз.
iMac 24 дюйма — самое новое устройство из линейки Мас с чипом М1. Благодаря чипу толщина корпуса моноблока составляет всего 11,5 мм. У этой модели, представленной в 11 цветах, — 24-дюймовый экран Retina с разрешением 4,5K. Мощность его центрального процессора стала до 85% больше. Новый iMac 24 дюйма обрабатывает графику до двух раз быстрее (по сравнению с iMac 21,5 дюйма) и без проблем открывает сотни вкладок Safari. Результатом идеального взаимодействия мощного оборудования, macOS и чипа M1 стала тихая работа практически без перегрева даже при очень высокой нагрузке. Это первая модель iMac, оснащенная технологией Touch ID.
Источник
Бенчмарки Apple M1 в реальной разработке
Я очень впечатлён результатами тестов Apple M1. Это действительно быстрый и мощный чип в важных повседневных задачах, таких как просмотр веб-страниц, работа с приложениями x86 и инструментами разработчика. Да, экосистема ещё не развита, и это может занять некоторое время, но эта работа стоит того, с учётом феноменальной производительности M1.
М1 действительно быстрый, и многие бенчмарки доказали его эффективность. Однако мне было любопытно посмотреть на производительность языков программирования. Поэтому я решил протестировать чип в самых популярных рабочих нагрузках в разработке.
Следует иметь в виду, что некоторые наборы тестов нагружают память, другие зависят от производительности CPU, а в некоторых задачах нет преимущества от многоядерной обработки из-за накладных расходов или сложности использования многопоточности. Это означает, что M1 может показать лучший результат, чем десктопный Ryzen даже с меньшим количеством ядер. Самое главное, что я сосредоточился на тестах реальных задач разработки, а не на синтетических тестах продакшна.
Исходные данные бенчмарка здесь.
Примечание: количество ядер 3900X бесполезно для тестов, которые не показывают реальную производительность в продакшне. Но сами разработчики большую часть времени работают на ноутбуках, настольных компьютерах и т. д., поэтому такие тесты имеют смысл. Конечно, в продакшне Ryzen 3900X будет работать намного лучше, чем M1 и Intel, в основном, за счёт распараллеливания.
Тестовое окружение
Java Renaissance
Чем меньше, тем лучше
Renaissance — это современный, открытый и диверсифицированный набор тестов для JVM, направленный на тестирование JIT-компиляторов, сборщиков мусора, профайлеров, анализаторов и других инструментов.
Поскольку JVM требует большого объёма памяти, а память является одним из главных узких мест для любых Java-приложений, производительность Apple M1 ошеломляет по сравнению с Ryzen 3900X.
Java SciMark 2.0 (NIST)
Чем больше, тем лучше
SciMark 2.0 — это Java-бенчмарк для научных и численных вычислений. Он замеряет производительность нескольких вычислительных ядер и сообщает сводную оценку в приблизительных мегафлопсах (миллионы операций с плавающей запятой в секунду).
Java DaCapo
Чем меньше, тем лучше
Тестовый набор DaCapo состоит из набора опенсорсных приложений реального мира с нетривиальной загрузкой памяти.
Python PyPerformance
Чем меньше, тем лучше
Проект PyPerformance должен служить авторитетным источником бенчмарков для всех реализаций языка Python. Основное внимание уделяется реальным, а не синтетическим бенчмаркам. Где возможно, используются полные приложения.
Go (golang.org/x/бенчмарки)
Чем меньше, тем лучше
Обратите внимание, что в этом бенчмарке Go использует все ядра.
Go (golang-benchmarks)
(Единицы измерения: наносекунд на операцию, чем меньше, тем лучше)
Apple M1 (Mac Mini) | Apple M1 (MacBook Air) | Ryzen 3900X | Intel i7-9750H | |
---|---|---|---|---|
BenchmarkBase64decode-24 | 68,65 | 69,77 | 137,1 | 103 |
BenchmarkBase64regex-24 | 12001 | 12001 | 32803 | 18255 |
BenchmarkNumberRegEx-24 | 7759 | 7931 | 23379 | 12206 |
BenchmarkFulltextRegEx-24 | 6388 | 6388 | 18627 | 10014 |
BenchmarkNumberParse-24 | 48,69 | 50,19 | 66,83 | 58 |
BenchmarkFulltextParse-24 | 726,3 | 726,3 | 933,2 | 839 |
BenchmarkConcatString-24 | 21949 | 22810 | 65498 | 43343 |
BenchmarkConcatBuffer-24 | 4,338 | 4,648 | 6,258 | 6,24 |
BenchmarkConcatBuilder-24 | 2,37 | 3,1 | 2,934 | 3,02 |
BenchmarkContains-24 | 5,007 | 5,204 | 7,467 | 7,94 |
BenchmarkContainsNot-24 | 6,322 | 6,322 | 7,693 | 8,9 |
BenchmarkContainsBytes-24 | 5,33 | 5,511 | 7,5 | 8,49 |
BenchmarkContainsBytesNot-24 | 6,57 | 6,773 | 9,188 | 10,3 |
BenchmarkCompileMatch-24 | 70,66 | 75,09 | 110,1 | 83 |
BenchmarkCompileMatchNot-24 | 31,65 | 32,08 | 62,42 | 42,1 |
BenchmarkMatch-24 | 800,2 | 804,6 | 2376 | 1313 |
BenchmarkMatchNot-24 | 758,1 | 779,3 | 2311 | 1262 |
BenchmarkForMap-24 | 18,89 | 18,92 | 20,37 | 20,6 |
BenchmarkRangeMap-24 | 47,66 | 48,59 | 53,25 | 56,7 |
BenchmarkRangeSlice-24 | 3,446 | 3,47 | 2,022 | 3,4 |
BenchmarkRangeSliceKey-24 | 4,072 | 4,121 | 2,906 | 3,15 |
BenchmarkAdler32-24 | 699 | 719,4 | 644,4 | 700 |
BenchmarkBlake2b256-24 | 2340 | 2415 | 2026 | 1932 |
BenchmarkBlake2b512-24 | 2343 | 2400 | 1985 | 1945 |
BenchmarkBlake3256-24 | 5753 | 5854 | 2489 | 2634 |
BenchmarkMMH3-24 | 374,3 | 383,2 | 294 | 377 |
BenchmarkCRC32-24 | 255,5 | 260,4 | 152,9 | 122 |
BenchmarkFnv128-24 | 4468 | 4502 | 5540 | 4210 |
BenchmarkMD5-24 | 3193 | 3211 | 2464 | 2534 |
BenchmarkSHA1-24 | 900,4 | 910,9 | 1898 | 1961 |
BenchmarkSHA256-24 | 913,5 | 927,6 | 4016 | 4525 |
BenchmarkSHA512-24 | 6999 | 7033 | 2883 | 3249 |
BenchmarkSHA3256-24 | 4213 | 4231 | 5957 | 5878 |
BenchmarkSHA3512-24 | 7329 | 7429 | 10233 | 10394 |
BenchmarkWhirlpool-24 | 32042 | 32624 | 35714 | 39205 |
BenchmarkMapStringKeys-24 | 68,14 | 70,66 | 87,62 | 100 |
BenchmarkMapIntKeys-24 | 43,6 | 48,49 | 42,51 | 60 |
BenchmarkJsonMarshal-24 | 1240 | 1261 | 2258 | 1720 |
BenchmarkJsonUnmarshal-24 | 4969 | 5102 | 9597 | 6484 |
BenchmarkMathInt8-24 | 0,3128 | 0,3235 | 0,2298 | 0,24 |
BenchmarkMathInt32-24 | 0,3145 | 0,3166 | 0,2324 | 0,239 |
BenchmarkMathInt64-24 | 0,3131 | 0,3158 | 0,2367 | 0,237 |
BenchmarkMathAtomicInt32-24 | 6,9 | 6,965 | 4,02 | 4,33 |
BenchmarkMathAtomicInt64-24 | 6,898 | 7,051 | 4,044 | 4,27 |
BenchmarkMathMutexInt-24 | 13,51 | 13,63 | 8,118 | 12,1 |
BenchmarkMathFloat32-24 | 0,3142 | 0,3142 | 0,3142 | 0,241 |
BenchmarkMathFloat64-24 | 0,313 | 0,313 | 0,313 | 0,239 |
BenchmarkParseBool-24 | 1,427 | 1,43 | 0,2252 | 0,308 |
BenchmarkParseInt-24 | 10,97 | 11,15 | 11,84 | 13,5 |
BenchmarkParseFloat-24 | 64,52 | 65,74 | 90,89 | 87 |
BenchmarkMathRand-24 | 13,55 | 13,55 | 17,27 | 21,5 |
BenchmarkCryptoRand-24 | 106,6 | 112 | 1311 | 145 |
BenchmarkCryptoRandString-24 | 107,6 | 110,7 | 222 | 138 |
BenchmarkMatchString-24 | 4957 | 5148 | 13869 | 7616 |
BenchmarkMatchStringCompiled-24 | 475,5 | 496,2 | 499,2 | 464 |
BenchmarkMatchStringGolibs-24 | 479,3 | 496,3 | 491,3 | 480 |
SQLite Bench
Чем меньше, тем лучше
Redis
Чем больше, тем лучше
JavaScript Web Tooling Benchmark (v8)
Чем больше, тем лучше
V8 Web Tooling Benchmark — это набор тестов для измерения рабочих нагрузок JavaScript в веб-разработке, таких как основные рабочие нагрузки в популярных инструментах вроде Babel и TypeScript. Цель в том, чтобы измерить конкретно производительность JavaScript (на которую влияет движок JavaScript), а не ввод-вывод или другие несвязанные аспекты.
Подробное описание тестов в этом наборе см. здесь.
Источник