Прости, Rosetta, мы должны расстаться
Меня зовут Антон. Я iOS разработчик в платформенной команде Циан.
С релизом Xcode 14.3 Apple убирает поддержку Rosetta и почти прямым текстом говорит разработчикам, что откладывать адаптацию своих проектов под Apple Silicon дальше уже некуда. Сегодня я поделюсь историей про то, с какими сложностями мы столкнулись в нашем основном приложении Циан, и какое стороннее решение помогло нам избавиться от Rosetta.
Конечно же, будут данные, графики и результаты, которые получили в процессе работы. В общем, всё как мы любим. Поехали!
Что такое Rosetta?
Для начала давайте коротко вспомним, что такое Rosetta?
Компания Apple за свою историю несколько раз меняла архитектуру процессоров в своих компьютерах. Это было в 1994 году, когда Apple перешли с процессоров Motorola на RISC-архитектуру PowerPC. Далее это было в 2006 году, когда Apple перешли от использования PowerPC к архитектуре Intel x86. И, наконец, это случилось в 2020 году, когда были представлены процессоры Apple Silicon, и начался переход от Intel x86 к архитектуре ARM.
У всех этих архитектур есть собственные наборы процессорных команд, которые отличаются между собой. Так вот, чтобы разработчикам, как мы с вами, было легче жить в эпоху перемен, Apple выпустили транслятор, который бы позволял переводить набор команд от одной архитектуры в набор команд другой архитектуры во время работы приложений. Этот транслятор и назвали Rosetta.
С одной стороны Rosetta несёт, несомненно, пользу. Пока вы не адаптировали свой проект под новую архитектуру. С другой стороны, на транслирование команд из их одной архитектуры в другую тратятся ресурсы, время при сборке и запуске проекта и лишает вас возможности перейти на Xcode 14.3, использование которого спустя некоторое время станет обязательным условием для публикации в AppStore.
Как понять, что используется Rosetta?
Теперь давайте разберёмся, а как вообще понять, что при запуске вашего приложения на машине с процессором Apple Silicon используется Rosetta? Это можно сделать несколькими способами.
Самый простой — воспользоваться системной утилитой Activity Monitor, которая идёт в составе macOS. В ней на вкладке CPU можно увидеть список запущенных процессов. Среди них будет и ваше приложение, которое запущено на симуляторе. В колонке Kind (или Architecture в более ранних версиях macOS) будет одно из двух значений — Intel или Apple. Если у процесса вашего приложения указано Apple, то поздравляю — вы не используете Rosetta. Значение Intel говорит, соответственно, об обратном.
Ещё есть способ узнать эту же информацию из консоли:
В результате будут выведены запущенные процессы приложений, которые взаимодействуют с Rosetta:
Как было в Циан?
Мы разобрались, что такое Rosetta, и как определить, использует ли этот транслятор ваше приложение. Теперь расскажу, как было у нас в Циан совсем недавно.
В 2022 году мы начали активно обновлять парк рабочих машин, заменяя Intel на Apple Silicon.
Вот немного статистики про сам проект:
680 тысяч строк кода (500 тысяч на Swift и 180 тысяч на ObjC);
55 сторонних зависимостей.
Конечно же, при работе над проектом нам хотелось использовать мощность новых машин по полной. Первые из нас, кто получил такие машины, очевидно, не смогли с первого раза собрать проект и сделали хак, включив опцию Open using Rosetta для Xcode и iOS Simulator.
Время холодной сборки проекта на машине с M1 Pro и 16Gb RAM на тот момент составляло:
для симулятора: 620 секунд;
для реального устройства: 600 секунд.
Что делали?
Мы обновили все сторонние зависимости, в которых появилась поддержка Apple Silicon.
Нам пришлось подправить немного код в тех местах, где мы инициализировали различные компоненты. Например, у нас используются карты от Яндекса, и для их корректной работы на симуляторе нам пришлось добавить следующую обёртку:
Обратите внимание на опцию vulkanPreferred . Пример того, как разработчики адаптируют свои библиотеки под Apple Silicon.
Ещё выключили опцию Open using Rosetta и добавили настройку EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 в проект.
Мы подумали, что это не избавит нас от Rosetta полностью, но хотя бы сэкономит время на сборке тем разработчикам, кто отлаживается на реальных устройствах.
Тут надо понимать, что даже если вы выключите опцию Open using Rosetta и добавите опцию про исключения arm64 из архитектур для симулятора, то Rosetta всё равно будет использоваться, и в том же Activity Monitor вы будете видеть значение Intel.
После этих изменений время сборки на девайсе составило 414 секунд.
Спустя некоторое время мы попытались избавиться уже от ранее добавленной опции про исключение arm64 из поддерживаемых архитектур для симулятора.
И тут нас ждало главное приключение в этой истории. Помните, я вам рассказывал, что мы обновили все зависимости, которые добавили поддержку Apple Silicon? На самом деле я вас немного обманул. Одну зависимость обновить мы не смогли.
Среди прочих сторонних библиотек и framework-ов у нас образовался следующий «любовный треугольник»:
С одной стороны, у нас в приложении используется YooKassaPayments для проведения оплаты с различных банковских карт и Apple Pay. С другой стороны, с помощью YandexMobileAds мы показываем различную рекламу. Обе эти зависимости требуют для своей работы YandexMobileMetrica. Все три зависимости поддерживают Apple Silicon в своих актуальных версиях. Но в чём тогда загвоздка?
А загвоздка в том, что для работы YooKassaPayments требуется динамическая версия YandexMobileMetrica. А для работы YandexMobileAds актуальной версии 5.x, в которой добавлена поддержка Apple Silicon, требуется статическая версия YandexMobileMetrica. У нас же в проекте использовалась YandexMobileAds версии 4.x, в которой есть возможность работы с динамической версией YandexMobileMetrica. Но в ней нет поддержки Apple Silicon, и она поставляется в виде обычного framework-а, а не в новом формате xcframework.
Соответственно, как только мы убрали опцию EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 для симуляторов, компилятор сообщил, что YandexMobileAds не поддерживает запуск на Apple Silicon.
Мы завели issue на GitHub с описанием проблемы для актуальной версии YandexMobileAds и стали думать, что делать с этой проблемой.
Конечно, у нас был вариант исключить код, который отвечает за показ рекламы, для симулятора. Но тогда получалось, что для разработки и отладки некоторых фичей нам было никак не обойтись без девайса. Не такая уж и большая проблема, но всё же нужно было держать в голове, что часть функционала приложения не будет доступна на симуляторе.
Решили поискать ещё альтернативные пути решения проблемы. И натолкнулись на open source утилиту под названием arm64-to-sim.
В чем её суть: если какой-либо бинарник поддерживает архитектуру arm64 и может работать на девайсе, то с помощью данной утилиты можно сделать версию бинарника, которая подходит для запуска в симуляторе на машинах с Apple Silicon.
Что за чёрная магия, спросите вы? На самом деле никакой магии нет. Тут нужно немного сделать шаг в сторону и погрузиться в то, как устроен бинарный файл формата Mach-O, который применяется во всех операционных системах Apple.
Я не буду сильно вас грузить теорией и всеми нюансами этого формата. Для наглядности на картинке ниже показана упрощённая схема.
Тут для нас самое интересное — секция с командами загрузки Load Commands.
Во время сборки проекта одним из этапов является линковка библиотек и framework-ов, которые нужны для работы вашего приложения. За это отвечает утилита ld или, другими словами, linker. Так вот, этот линкер читает каждый бинарный файл и выполняет по очереди команды загрузки, которые объявлены в заголовке нашего бинарного файла.
Оказывается, что разница между бинарным файлом, который может работать в симуляторе на машине с Apple Silicon, и бинарным файлом, который может работать на обычном arm64-девайсе, ровно в одной загрузочной команде из заголовка. Более того, обе эти команды ссылаются на одни и те же сегменты данных.
Так вот, возвращаясь к работе утилиты. Она умеет искать нужную загрузочную команду в переданном ей файле и подменять её на нужную команду для запуска на симуляторе с Apple Silicon.
Если интересно погрузиться в эту тему, то разработчики утилиты написали две крутые статьи (раз, два), в которых всё подробно написано об особенностях работы со статическими и динамическими framework-ами.
Теперь давайте вернёмся к нашему любовному треугольнику из сторонних зависимостей. В итоге мы воспользовались arm64-to-sim и перепаковали обычный framework YandexMobileAds в настоящий xcframework с поддержкой Apple Silicon. Приложение стало запускаться на симуляторе.
Но на этом наши приключения не закончились.
При переходе на любой экран, где у нас отображалась карта, приложение начало падать. Помните я говорил, как нам пришлось добавить обёртку для Яндекс карт, в которой использовались макросы TARGET_IPHONE_SIMULATOR и TARGET_CPU_ARM64 ?
Оказалось, что TARGET_IPHONE_SIMULATOR уже давно отмечен как deprecated (да, тут мы оказались немного староверами и упустили момент), и работал он ровно до того момента, пока мы использовали Rosetta. При сборке проекта для симулятора на Apple Silicon без Rosetta макрос TARGET_IPHONE_SIMULATOR выдает false . Решение тут достаточно очевидное. Достаточно перейти на более актуальный способ проверки окружения с помощью targetEnvironment:
Теперь при запуске проекта на Xcode 13 приложение не падало и казалось, что это победа.
Но тут, внезапно, подкрался Xcode 14, который успели установить некоторые разработчики из команды, и проблема с падением приложения при переходе на экраны с картой опять вернулась.
Падение выглядело следующим образом: главный поток, EXEC_BAD_ACCESS , ноль полезной информации в логах. Всё, как мы любим. Тут на помощь пришла диагностическая опция Zombie Objects из Memory Management. Это позволило в логах в момент падения увидеть основную причину:
Я немного повторюсь и ещё раз спрошу, помните вот ту обертку с Яндекс картами? Там была опция vulkanPreferred . Так вот, Vulkan — это кроссплатформенное API для отрисовки 2D- и 3D-графики, которое приходит сейчас на смену OpenGL. Судя по stacktrace-ам, Яндекс карты взаимодействуют с Vulkan API через библиотеку MoltenVK, которая, в свою очередь, на iOS взаимодействует уже с нативным Metal API. И класс CaptureMTLCaptureScope из лога падения как раз является частью Metal API. Он отвечает за «захват» Metal-фреймов c GPU.
Это, конечно, всё увлекательно и интересно, но что нам делать? Падение внутри системного API в результате вызова из библиотеки, к исходному коду которой у нас нет доступа. Звучит так себе.
Тут нам на помощь пришёл changelog для Xcode 14, в котором был следующий пункт в разделе изменений для Metal:
Стало ясно, что парни из Купертино что-то отломали в части захвата фреймов с GPU.
К моменту, когда мы столкнулись с этой проблемой, был уже доступен Xcode 14.1 RC 2. Но и в текущем актуальном релизе Xcode 14.2 проблема сохраняется.
В итоге, чтобы избавиться от этого падения, мы решили отключить возможность захвата GPU-фреймов. Это можно сделать в параметрах схемы таргета в Xсode в разделе Options. Там есть настройка GPU Frame Capture, которой мы выставили значение disabled.
Тут важно понимать, что это именно отключение захвата GPU frame-ов. На возможность отображения иерархии view при отладке это никак не влияет. На них просто не будут отображаться фреймы, для которых используется Metal API. То есть для нас это вьюшки с картами.
Это позволило нам собрать проект без Rosetta на Xcode 14.
После этих изменения время сборки на симуляторе составило 405 секунд.
К чему пришли?
В итоге все эти приключения позволили нам избавиться от Rosetta в проекте. Время чистой сборки сократилось c 10 минут до 6.5—7 минут, т.е. на 30—35%. Это позволило сэкономить время не только разработчикам, но и нашим QA, так как время на прогон Unit- и UI-тестов сократилось и сборки до них стали долетать быстрее.
В завершение хочу сказать, что если какая-то сторонняя зависимость мешает вам отказаться от Rosetta, то не стоит надеяться и ждать, когда авторы адаптируют её под Apple Silicon. Есть инструмент под названием arm64-to-sim, который позволит это сделать самостоятельно.
Надеюсь, наша история вам понравилась, и вы нашли в ней что-то полезное для себя.
Если у вас остались вопросы, то не стесняйтесь их задавать в комментариях.
Окружение дата-аналитика на Mac OS в 2021году
Прошёл год с тех пор как Apple выпустила свои первые ноутбуки на процессорах M1 с архитектурой ARM. Многие популярные программы, особенно в области контента , довольно быстро добавили нативную поддержку данных ядер (vlc, многие приложение из Adobe Creative Cloud ). Спецов по Data Engineering/Science также порадовали нативной поддержкой Visual Studio Code, Docker, Homebrew, Parallels Desktop . Однако существуют мнения, что для scientific computing данная архитектура не предназначена, и аналитик столкнется со множество проблем на M1.
Давай разберемся, как дата-аналитику настроить себе локальное окружение и точно ли будет больно при использовании ноутбуков на этой архитектуре??
Содержание:
0. Инструменты разработчика
Шаг №1 состоит в том, чтобы поставить себе dev-инструменты. Этот шаг не зависит от версии мака (ARM или Intel) и содержит в себе такие фундаментальные вещи как git и компилятор C++ кода, необходимый для сборки библиотек из исходников .
Первым делом ставим себе Apple’s Xcode Command Line Tools. Конечно, можно не пользоваться терминалом и поставить себе полноценный графический Xcode из AppStore. Однако он весит 12GB и вряд ли дата-аналитик будет пользоваться им в качестве IDE.
Пакетный менеджер
Нам необходим менеджер пакетов, чтобы устанавливать приложения (с поддержкой зависимостей) через команды, а не через скачивание архивов — так проще, быстрее и мне легче описывать . Для Mac OS основным является Homebrew . На оф-сайте показано как поставить:
Далее установщик предложит добавить путь к программе в $PATH (переменная среды), чтобы можно было вызывать brew из командной строки. Делаем, как он говорит:
В примере вместо имени пользователя подставлен переменная среды, которая автоматически его вычислит. По сути PATH — указатель местоположения всех запускаемых бинарников, изначально берет инфу отсюда sudo nano /etc/paths .
Архитектура процессора
Для начала стоит чекнуть, правда ли у тебя M1 (первая строчка это команда, а вторая — вывод):
Ноутбуки на процессорах Inter выведут “i386” .
До Homebrew 3.0 (на момент написания статьи уже доступна версия 3.3.8) не было отдельной версии под M1, и его можно было установить через:
Однако не рекомендую использовать arch -x86_64 , т.к. это сводит на нет всю дальнейшую статью. Дело в том, что данные команды будут работать через Rosetta, о которой мы и поговорим в след. разделе.
1. Rosetta
Почти все приложения на M1 Mac можно запускать под Rosetta 2 (названо аналогично Rosetta, которую Apple использовала при замене процов PowerPC на Intel). Это транслятор, который переводит ISA (машинный код) c архитектуры x86_64 (AMD64) на ARM64 (AArch64, Apple Silicon). То есть программа будет запускаться как будто на процессоре от Intel.
Выше код, ставящий Rosetta. Также, мак сам попросит ее поставить при запуске любой приложухи, не адаптированной под M1.
Например, RStudio. Это видно в системном приложении под названием Activity Monitor (колонка Kind). Почти все вопросы на Stack Overflow, касающиеся установки пакетов для DS на Mac M1, получают в ответ предложение запускать терминал под Rosetta 2.
Можно скачать iTerm2 (или запустить brew install —cask iterm2 ) и сделать его отдельным терминалом под Rosetta. Далее пользоваться им как будто это терминал на компе с процессором Intel.
Минус такого подхода: обычно он на 20–30% медленнее , чем на нативный x86–64 (из блога Anaconda ). Происходит это потому, что ARM (и следовательно Rosetta2) не поддерживает векторные операции (AVX). Некоторые программы автоматом выбирают вместо них другие, более простые (и менее производительные) инструкции. Также, возникает вторая проблема — некоторые библиотеки не используют альтернативу AVX, поэтому они не будут работать под Rosetta2. Например, TensorFlow.
2. Нативный M1
Конечно, лучше использовать нативные команды M1. Например, Apple представила свой форк для TensorFlow, и заявляет, что его запуск на M1 в 7 раз быстрее , чем на Intel. Давай разбираться, как настроить native- окружение.
2.1 Установка Python
Рассматриваю только 3й python. Для python 2 в начале прошлого года наступил EOL. Ставим через Homebrew, и можем проверить в Activity Monitor, что python будет работать под arm64.
Также, вместо brew можно воспользоваться pyenv для установки python в собственную виртуальную среду.
Первая команда — установка зависимостей. Мануал для других версий питона 3 можно найти тут. Но! Тому же tensorflow на M1 нужна версия 3.9, а оф. сайт python заявляет, что полная поддержка ARM64 только с 3.9.1.
Смотрим, куда homebrew/pyenv положили питон:
Далее, чекаем что наш Python нужной архитектуры:
2.2 Установка пакетов в python
Стандартным способом ставить пакеты в python является pip, однако на M1 использовать его не стоит. Дам объяснение на пальцах (понимаю, что бывалые меня засмеют, но статья для аналитиков с небольших опытом). В индексе пакетов PyPI (куда ходит команда pip) для большинства пакетов существует заранее скомпилированные версии под конкретную ОС (т.н. wheels). При установке на Mac OS часть пакетов отдаст wheels, скомпилированные под процессоры Intel. Даже если такие пакеты установятся, при импорте они скорее всего упадут с ошибкой ☠️.
Правильный способ установить python-пакеты в Mac M1 — через miniforge. Это почти тоже самое, что и miniconda, но умеет определять архитектуру aarch64 и содержит бинарники пакетов под ARM.
Можно не использовать терминал, а скачать правильный архив для aarch64 (Apple Silicon) на их Github.
Почему бы просто не поставить Anaconda? Есть несколько причин. Во-первых, полный дистрибутив весит 3GB и содержит 3к пакетов, что очевидно излишне. Во-вторых, : многие собираются использовать данное окружение для выполнения своих рабочих задач, а я напомню, что использование Anaconda в коммерческих целях запрещено, а вот с mini-conda все сложнее. Как я понял из лицензии✈️, она о репозитории, не о самой программе. В-третьих, только forge поддерживает aarch64.
2.3 Ставим основной стек
Если пакеты уже стоят, то скорее всего из wheels (обсудили выше), поэтому их изначально нужно удалить через pip3 uninstall … ) ❗
Если ставить python без pyenv можно считать безгрешным способом, то ставить пакеты точно стоит в виртуальную среду. 1 Проект = 1 env — это культура , к которой стоит себя приучить. Многим это может показаться оверхэдом, но без этого будет очень больно в случае конфликта версий с системными библиотеками или другими приложениями.
Большинство пакетов уже давно портировано, их статус можно проверить на этом сайте.
Можно посмотреть, куда conda ставит библиотеки:
О том, как использовать conda ты скорее всего знаешь, но если нет — лучше все же покурить мануал .
2.3 Библиотеки для ML
Начнем с бустинга, поскольку интерпретируемое и хорошо изученное семейство методов с небольшим порогом входа (на изучение), но в то же время очень мощное (даже один из победителей соревнования на Kaggle заявил, что его интерес состоит в том чтобы побить бустинг с помощью нейронок).
Установка LightGBM на m1
Все просто, поскольку LightGBM уже имеет нативный релиз ☺️для M1.
Установка XGBoost на m1
К сожалению, пока XGBoost не имеет нативного пакета, но может быть собран из исходников . Есть 2 варианта: воспользоваться доками и собрать пакет из репозитория на github ; или воспользоваться pip, который сделает то же самое (хотя работать будет несколько минут). Первый вариант сложнее, но надежнее. Второй выглядит так:
К сожалению, оба варианта будут работать только на CPU без GPU-ускорения.
Установка CatBoost на m1
К сожалению, нативного пакета CatBoost пока нет в индексах, хотя в issue на github его команду постоянно пушат, она обещала доделать в ближайшее время. Тем не менее, можно собрать его из исходников, однако не будут использоваться перфоманс-фичи процессора.
Пакеты для Causal Inference
Пакеты от Microsoft прекрасно ставятся из miniforge.♂️
Если стоят старые версии библиотек, нужно переставить с помощью conda install -c conda-forge dowhy .
А вот поставить нативный CausalML не получится.
2.4 Deep learning
Apple особенно заботится о том, чтобы на ее железе работали нейронки, потому как:
- Многие ДС выбирает макбуки в качестве рабочего компьютера
- Разработчиков контента традиционно сидят на маках, используя фото/видео/аудио-редакторы , а эти программы будут максимально использовать DL внутри себя.
Поэтому Apple разработала внутри себя т.н. Apple Neural Engine (ANE), состоящий из множества NPU. Это аналог GPU, только заточенный не под графику, а под нейронки. Ты мог видеть подобное в Google’s TPU. Все макбуки на M1 на текущий момент оснащены 16-ядерным ANE, что должно давать сильно ускорение по сравнению с обучением на CPU.
К сожалению, прямого доступа у разработчиков в ANE нет, только через CoreML, библиотеку от Apple. Так можно получить ускорение?
Установка TensorFlow на m1
Как я уже описывал выше, у Apple есть свой плагин TensorFlow, который работает на GPU M1. Давай его установим.
Большинство туториалов в сети рекомендуют создавать отдельную env для tensorflow, хотя большую часть зависимостей мы уже установили раньше. Если по какой-то причине tf не установится/запустится, нужно еще раз сделать conda create и поставить туда уже готовый wheel:
Установка PyTorch на m1
Заработал совсем недавно. Проблема в том, что PyTorch все же заточен под GPU от NVIDIA (т.е. поддержка даже AMD появилась только в марте), что уже говорить про M1. Очевидно, работать он будет только на CPU и очень медленно.
Установка Keras на m1
А вот поставить Keras к сожалению не получится.
2.5 Другие версии python и библиотек
Если у тебя python≤3.8, и ты не хочешь обновлять numpy (с версии 1.21.0 он уже имеет универсальные wheels, работающие под обе архитектуры) и др. пакеты, для тебя сработает билд из исходников.
В первую очередь, нам потребуется pip.
Как я уже писал, хорошим тоном является создание своего env под проект, например через conda или pyenv. Туториал как этим пользоваться, можно найти тут. Можно также использовать модуль стандатной библиотеки — venv (до версии 3.3 это была отдельная либа virtualenv):
Далее собираем зависимости:
Далее, ставим пакеты. Фишка в том, что бы зафорcить pip не использовать wheels, а собирать самому. Для этого, вначале объявляем переменные среды:
Ставим numpy
Ставим pandas
Ставим scipy
Теперь sklearn
Как указано на оф. сайте, единственный способо установить пакет на M1 — через mini-forge. Тем не менее, указанный issue на доступность в PyPI закрыт ♂. Поэтому думаю, что можно ставить через pip:
3. Установка R
Год назад разработчики R написали блог-пост, в котором объяснили почему на тот момент не было нативного пакета для ARM. Проблема в том, что R требует Fortran, нативного компилятора которого все еще нет. Сейчас это проблема кажется удивительной, учитывая что Numpy, Scipy и другие питоновские пакеты также требуют Fortran, но при этом для них уже есть готовые сборки под M1.
Хорошие новости — есть экспериментальный компилятор фортрана под M1, который неплохо работает. Поэтому разработчики R сделали билды под ARM на этом компиляторе, вот отдельная страница проекта. Надо понимать, что это экспериментальная сборка, поэтому ошибки не исключены (почитайте в блок по ссылке выше про проблему с NA). На официальном зеркале cran (в России это зеркало МГУ ) уже есть эти бинарные сборки под arm64, которые будут исправно работать. Могут возникнуть проблемы с установкой пакетов, которые необходимо билдить из исходников. Тут более-менее описано, как это решить.
Также, можно скачать версию под mac для x86–64, которая “it is also known to work using Rosetta2 on M1-based Macs”, и не будет иметь проблем с библиотеками, но будет иметь проблемы с производительностью.
Надо понимать, что поставить Microsoft R Open (тот же R, но более производительный) на Macbook M1 не получится.
RStudio
В отличии от самого R, RStudio (основная среда разработки под него) до сих пор не нативна, а значит нельзя запустить в ней например tensorflow .
Тут я могу рекомендовать следующее — писать основной код в RStudio, а когда потребуются библиотеки под ARM — запускать их в R GUI (т.н. R Console).
Или, что еще лучше — использовать Visual Studio Code (например, чтобы использовать Copilot). Для R потребуется поставить расширения (раз, два) и настроить languageserver. Инструкцию можно найти тут.
Пока на этом все. Закономерный вопрос, зачем это нужно, ведь большая часть работы с python происходит на сервере с большим кол-вом ресурсов. Но стоит понимать, что серверное окружение может содержать старые версии библиотек, и к тому же требует постоянного интернета. Поэтому кажется, что в 2021 и следующем 2022 для удаленной работы стоит настроить окружение локально.
Конечно, Python и R лишь часть того, что использует аналитик, поэтому у этой статьи точно будет продолжение.
Два дня с MacBook Air на M1: опасения оправданы?
Когда Apple только провела презентацию новых маков на собственной системе-на-чипе, стало понятно, что эти самые макбуки мало интересны: кроме M1 и изменений, вызванных ею, эти компьютеры ничем не отличаются от предыдущих моделей. Возьмём для примера вам два MacBook Air: 2018 года и на M1. Вот главные внешние отличия:
MacBook Air 2018 года с клавиатурой «бабочка» и новый MacBook Air на Apple M1. Фото: Илья Кичаев / Wylsacom Media
Сразу на презентации рассказали, что главным новшеством стала именно эта система-на-чипе. Собственно, новые маки являются лишь мулами, способными продемонстрировать, как работает М1.
До сих пор я испытывал очень сильные сомнения относительно компьютеров на M1. Эти сомнения я описал в тексте, который был написан на следующий день после презентации:
Ищем отличия ARM-версий MacBook Pro 13 от MacBook Air
/>Илья Кичаев
В том тексте я задал вопросы: как новые макбуки будут работать на старте? Всё-таки прошлая смена архитектур, когда Apple перешла с PowerPC на x86, была довольно болезненной. Да и сильно смущали меня письма разработчиков, которые я получаю последние несколько лет: «Не обновляйтесь на новую macOS, — говорят они в этих письмах, — у нас ещё ничего не готово!»
Оставим тот факт, что каждый год выход новых «макосей» становится чем-то крайне неожиданным. Это можно разве что сопоставить с нашими коммунальщиками, которые, кажется, каждый год впервые в жизни видят снег и не знают, что с ним делать. Хотя признаюсь: факт неподготовленного софта меня тоже очень смущал.
Прибавим к этому то, что Microsoft тоже пытается в компьютеры с ARM. Но пока не выходит:
Обзор Microsoft Surface Pro X: ограничение ваших свобод
/>Илья Кичаев
11 Декабрь 2019
В общем, я боялся, что потеряю отличную рабочую станцию с переходом на M1. К мощности вопросов не было совсем. Они были к софту.
С этим опасением я взял MacBook Air и провёл с ним два дня. Этот текст я также пишу на нём.
Мой бэкграунд: у меня есть MacBook Air 2018 года, который я использую в командировках, поездках на малую родину, а также просто как выездной компьютер для встреч и коротких поездок, когда понимаю, что мне нужно будет работать.
Большой опыт эксплуатации лёгкого MacBook Air
/>Илья Кичаев
Дома же у меня пятнадцатидюймовый MacBook Pro 2015 года с MagSafe. Там самое топовое железо тех лет, но вот только оно уже слегка устарело. И периодически компьютер на простейших задачах начинает взлетать от кулеров.
Тут сразу дисклеймер: мы задержались. Компьютеры три недели продаются в США, а в свободном доступе уже две недели. Поэтому я принял решение отказаться от тестов: зачем проводить работу, которую уже кто-то сделал? Если вам нужны циферки бенчмарков, то лучше за ними обратиться в другой текст или какое-нибудь видео. Или посмотреть очень хороший видос наших коллег из Rozetked:
Также с этими циферками есть проблема: я не знаю, как их применять в реальной жизни. Что мне даст производительность одного или нескольких ядер в цифрах? Я, как и большинство пользователей, не умею экстраполировать эти данные в реальную жизнь. Ну… Одна цифра больше другой. Окей.
Поэтому сейчас я пишу максимально субъективный текст. В нём я в первую очередь пытаюсь для себя ответить на вопрос: возможно ли сейчас спокойно перейти с Intel на M1? Насколько это будет больно?
Мне интересны несколько моментов: как новый Air справляется с выполнением моих повседневных задач? Но ответ на этот вопрос может быть интересен и вам, поскольку какие-то вещи делает если не каждый человек, то множество из нас.
Поэтому в этом тексте вы узнаете, как работает Rosetta 2, как работает Logic Pro и сторонние музыкальные плагины VST и VSTi, как работают полноценные игры (пусть у меня и специфичный вкус на них) на новом Air, а также как работает через Rosetta 2 Photoshop. Ну потому что это тот софт, которым я пользуюсь постоянно.
Rosetta 2
По каким-то причинам переводчик Rosetta 2 не установлен по умолчанию на новых маках. Вероятно, кто-то в Apple посчитал, что некоторым пользователям будет достаточно собственных приложений компаний, точно адаптированных под новую архитектуру.
Но, скорее всего, вам придётся установить Rosetta 2 — это переводчик/эмулятор, который переводит код, написанный под x86, в ARM. Вот, например, у меня появилось такое окошко при установке Telegram:
Нажимаешь на «Установить» и через пять секунд всё готово. Я даже понять ничего не успел. Собственно, это последний случай, когда вы заметите, что каким-то образом контактируете с Rosetta 2.
Запуск неадаптированных приложений происходит без каких-либо уведомлений. Всё работает плавно и чётко. За исключением некоторых приложений, которые не входят в мой рабочий спектр. Люди жалуются, что не работает Docker. Проверил — действительно не работает:
Вот список приложений, которые я установил через Rosetta 2:
- Telegram;
- Эмулятор гитарных эффектов Native Instruments Guitar Rig 5;
- Синтезатор Native Instruments Massive;
- Плагин для обработки звука iZotope Vinyl;
- ПО для создания цепочки эффектов HX Edit в гитарных процессорах Line 6;
- Steam;
- Photoshop.
Подчеркну, что все эти приложения рассчитаны под Intel, под ARM они пока не переписывались, то есть всё запускается через Rosetta 2.
Telegram работает без проблем, он у меня постоянно включён. Вылетел один раз, но с чем это было связано, мне неизвестно, поэтому винить в этом Rosetta 2 необъективно.
Честно говоря, я ни разу не видел, чтобы кто-то что-то писал про игры на M1. Вероятно, дело в том, что маки и игры — такое себе сочетание. Достаточно открыть раздел с играми для этой оси в «Стиме». Если у вас есть такая возможность, то сделайте это. Вот, например, на главной раздела стоит Team Fortress 2:
И вот сам Steam стал главной проблемой для M1. Его интерфейс лагает, видео в нём воспроизводится с каким-то невозможным для просмотра количеством кадров. Прокрутка идёт резкими скачками, плавности нет вообще. Собственно, это единственная проблема с тем софтом, который я использую.
Зато вот градостроительный симулятор Cities: Skylines, купленный именно в нём, работает без каких-либо проблем на полном разрешении экрана. А это, на минуточку, 2560 × 1600 пикселей (именно поэтому залью гифку с разрешением 800 × 500)!
Тут, конечно, можно возразить, мол, Cities: Skylines — игра древняя. Да и что я вообще за извращенец такой — разве кто проверяет работоспособность компьютера в подобных играх? Но я тут пишу всё-таки очень субъективный обзор, так что прошу простить.
Интереса ради запустил Dirt 4 и улетел в нём на пару часов — захватило! При разрешении 1920 × 1200 и средних настройках графики MacBook Air выдаёт плавную картинку. Если увеличить разрешение до 100 %, то случаются краткие и редкие просадки, но фреймрейт всё равно приятен глазу.
В этот момент компьютер довольно сильно нагрелся, но просадки в кадрах из-за температуры я не заметил. Интересно, как себя покажет в этом деле стартовый MacBook Pro 13, где есть кулер?
MacBook Air на Apple M1. Фото: Илья Кичаев / Wylsacom Media
Справедливости ради скажу, что мы запустили эту игру на стартовом 27-дюймовом iMac с Radeon 570X и тут даже с разрешением в 4К можно было играть на средних настройках графики со стабильно высоким фреймрейтом, близким к 60 fps (Count It, подсчитывающий fps, у нас в Dirt 4 не запустился ни на Intel, ни на Apple M1).
Музыка
Некоторые наши постоянные читатели могли заметить, что я слегка музыкант. О своих пристрастиях я рассказывал в этом лонгриде:
iPad как инструмент: как планшет Apple используют музыканты
/>Илья Кичаев
Задолго до презентации Apple M1 было понятно, что главное музыкальное ПО на macOS будет работать без проблем, поскольку его делает сама Apple. Это Logic Pro. Собственно, ситуация показала, что так и есть.
Но вот проблема: Logic Pro сам по себе полезен, но только до тех пор, пока вы ограничиваетесь настоящими инструментами. Если вам потребуются софтовые инструменты, то лучше обратитесь к решениям сторонних разработчиков. Не могу сказать ничего плохого про синтезаторы, например, которые делает Apple, но ничего хорошего тоже. Хотя в одном из глобальных апдейтов Apple значительно подвинулась вперёд к отказу от сторонних решений:
Apple выпустила самое крупное обновление Logic Pro X в истории секвенсора
/>Илья Кичаев
Но я привык к Native Instruments. Решения этой компании я открыл для себя ещё в те времена, когда сидел на Windows. В общем, мне было страшно, что сторонние плагины не будут запускаться. И что я получил?
MacBook Air на Apple M1. Фото: Евгений Кондратьев / Wylsacom Media
Guitar Rig 5 работает без проблем, я, правда, использовал его не Standalone, а как часть цепочки эффектов в Logic Pro. Также хорошо в секвенсоре работает Massive. Его я запускал и отдельно от Logic Pro, он работал без каких-либо проблем.
iZotope Vinyl не являются частью хоть одного моего музыкального тракта, но он стал иллюстратором работы VST-плагинов. Запустился без проблем и в режиме онлайн выполнял свою работу как положено.
Line 6 HX Edit работает на этом макбуке с помощью Rosetta 2 стабильнее, чем на пятнадцатидюймовом MacBook Pro 2015 года — всё очень плавно, все эффекты гитарного процессора отображаются как надо, их смена идёт без задержек.
Все три моих аудиоинтерфейса работают без нареканий как в соло-режиме, так и в режиме агрегатного устройства. Это Motu M2, а также два продукта Line 6 — HX Stomp и POD HD500X. Ещё я без проблем играл на midi-клавиатуре Akai MPK mini. Это приятно, поскольку год назад в macOS Catalina компания отключила USB 1.1, из-за чего мне пришлось отказаться от своей старой аудиокарты Focusrite.
Photoshop
Он работает через Rosetta 2. Каких-либо проблем в работе найти не удалось. Где-то М1 справляется быстрее iMac, где-то — медленнее. В целом какие-то простейшие задачи компьютер отрабатывает быстро, дискомфорта в них я не испытываю.
Вот, например, я импортирую в Photoshop несколько RAW-файлов и 3D-маску, а также применяю тяжёлый для процессора эффект:
Я проверял производительность именно в таких решениях, ориентируясь на мнение друга-фотографа, который не понимает, что делать с видео, где на PSD-файлах отключают и включают тот или иной слой.
Apple точно перейдёт на ARM. Уже сейчас видно, что это не какие-то там заигрывания, а вполне себе действенное и правильное решение. Я повторю свою мысль из текста, написанного на прошлой неделе:
Я тут задумался, почему Apple выпустила новые макбуки в старом дизайне, нарочито сделав их максимально схожими со старыми устройствами. И нашёл три возможные причины:
1. Разработка дешевле, то есть больше денег может пойти в отдел, занимающийся созданием систем-на-чипе M1 и её преемников;
2. Для Apple был важным тот факт, чтобы люди, включая журналистов и блогеров, обращали внимание на производительность новых компьютеров, не отвлекаясь на новый дизайн устройств, которому были бы посвящены большие пласты текстов;
3. Apple важно показать, что новая система-на-чипе M1 создана для макбуков гораздо в большей степени, нежели процессоры Intel: без кулера они работают тише и быстрее, а если в устройстве есть кулер, то он точно такой же, как в старом макбуке, но работает значительно лучше. Решения Intel в этом плане выглядят устаревшими и очень далёкими от совершенства. Чего точно нельзя сказать об Apple M1.
Попользовавшись MacBook Air на M1, я стал ещё более уверенным в собственных словах: да, всё так, как я и сказал ранее.
Спустя пару дней использования я обнаружил, что мои опасения развеялись: скорее всего, весь ваш софт, который работает на macOS Catalina, запустится и тут. При этом вы не заметите перехода, если пользовались MacBook Air или же стартовым MacBook Pro 13 предыдущих поколений. Разве что оба компьютера будут очень тихими и будут дольше работать.
Чудес относительно энергоэффективности ждать не стоит: я спокойно высаживал ноутбук за 5 часов экрана, усиленно три часа работая в Logic Pro, а затем ещё пару часов потратив на Steam и Cities: Skylines. При этом я не ограничивал себя ни в чём: браузер был постоянно открыт, в фоне работала «телега». Но тут стоит помнить, что всё работает через Rosetta 2. Сказать, сколько потребляет ресурсов этот переводчик, сложно, но батарея точно будет служить дольше.
Насколько это дольше моего старого MacBook Air 2018 года? Сказать сложно, поскольку Cities: Skylines не запускается на нём. Но за час работы в Logic Pro батарея садилась со 100 до 73 %. При этом расход у маков на Intel очень непредсказуемый — буквально за несколько минут он может разрядиться процентов на десять. С M1 этого получается избегать — расход очень предсказуем.
MacBook Air на Apple M1. Фото: Сергей Кузьмин / Wylsacom Media
Но тут я хочу сказать одну важную мысль: купив новые маки на ARM, вы не заметите перехода на M1. Сложности сопоставимы с очередным ежегодным апдейтом macOS. Но скоро под M1 разработчики перекомпилируют свой софт, и станет прям совсем хорошо — всё будет работать ещё быстрее и дольше. В большинстве случаев это случится довольно быстро: например, Blackmagic Design уже выпустила бету DaVinci Resolve 17.1 для M1.
Поэтому ни ваши, ни мои опасения неоправданы. Я могу спокойно использовать этот Air для работы с музыкой. И даже в редкие минуты играть в свои градостроительные симуляторы. А затем пойти с этим Air на работу и там писать тексты и обрабатывать фотографии в Photoshop. И от всего этого мне дико интересно, какими же будут новые макбуки и настольные маки. Будет ли какое-то совместное будущее с iPad? Думаю, скоро узнаем.
Маленькая революция: что можно сказать о процессорах Apple M1 год спустя
Последние 15 лет компьютеры Apple работали только на процессорах Intel. А в 2020 году появились первые Mac на процессорах Apple M1, которые разработала сама компания. Есть уже три фирменных чипа и целая линейка компьютеров с ARM-архитектурой. Ранее эта архитектура встречалась в iPhone, iPad и других портативных устройствах вроде Apple Watch или Apple TV.
Мы решили посмотреть, как обстоят дела с Mac на ARM спустя год после выпуска: все ли приложения адаптированы и остались ли функции, которые до сих пор недоступны.
Что произошло
Все Mac с процессорами Intel работали на x86-архитектуре, как и большинство Windows-компьютеров. Летом 2020 года Apple объявила о переходе на собственные процессоры с архитектурой ARM. Из-за этого встал вопрос совместимости новых процессоров и всего старого программного обеспечения.
Процессоры на новой и старой архитектуре работают с разным набором команд, которые получают от операционной системы компьютера. Представьте, что общаются два друга, один пишет на русском, другой — на индонезийском. Они используют разные символы и правила синтаксиса и понять друг друга могут только с помощью посредника, переводчика.
Роль переводчика Apple переложила на Rosetta — специальную программу-транслятор, которая позволяет запускать старые x86-приложения на Mac с новым процессором.
Перевод команд с одного языка на другой отнимает до 20% производительности, поэтому перед разработчиками встала задача — адаптировать программы под процессоры M1, чтобы они работали без переводчика.
Какие преимущества вы получите с Mac на архитектуре ARM
MacBook работают в полтора-два раза дольше от аккумулятора. Чипы с ARM-архитектурой потребляют меньше энергии, чем аналоги от Intel и AMD. По заявлению Apple, новый MacBook Pro 13 может проработать до 17 часов в браузере — тогда как для его предшественника на Intel заявлено всего 10 часов. Часовая видеоконференция в Zoom разрядит новый MacBook всего на 10–13%. Так что заряда ноутбука хватит, даже если весь ваш рабочий день состоит из созвонов.
На графиках показано потребление MacBook Air в режиме работы с документами, браузером и графическими редакторами. 100% заряда в среднем хватает на 8–12 часов
Компьютеры меньше греются и работают бесшумно. Чип Apple M1 оказался настолько холодным, что в новом MacBook Air вообще нет вентиляторов и активного охлаждения. Поэтому вы не услышите шелест кулера (его же нет), даже если начнете монтировать видео в 4K, а корпус нагреется до 36 градусов спустя час работы.
Активное охлаждение с кулерами есть только в новых MacBook Pro, Mac mini и iMac. Если не нагружать эти компьютеры обработкой видео или другими тяжелыми задачами, вентиляторы будут работать на минимальных оборотах или вообще не включатся.
Mac с Apple M1 оказались мощнее предыдущих моделей. Новые компьютеры Apple не только холоднее и тише предыдущих, но еще и работают быстрее в одних и тех же задачах.
Например, вот какой прирост производительности, по данным Adobe , получили приложения на MacBook Pro с Apple M1 в сравнении с его предшественником на Intel Core i5:
- Photoshop — на 89% быстрее сохраняет тяжелые файлы и работает с большим количеством слоев;
- Premiere — на 78% быстрее импортирует файлы и кодирует видео;
- Lightroom — на 69% быстрее импортирует фотографии в формате RAW и экспортирует снимки после обработки.
Компьютеры мгновенно выходят из сна. Все Mac c Apple M1 теперь остаются активными в фоновом режиме, даже если крышка ноутбука закрыта. И этим они похожи на планшет или смартфон — моментально включаются и сразу готовы к работе. С предыдущим поколением приходилось подождать 5–10 секунд, прежде чем система выйдет из сна.
В macOS появилась поддержка iOS-приложений. Компьютеры, смартфоны и планшеты Apple теперь работают на одной архитектуре, поэтому появилась возможность запускать мобильные приложения в macOS. На экране компьютера запускается версия программы для iPhone или iPad, управлять интерфейсом можно с помощью курсора мыши и клавиатуры.
Список мобильных приложений, которые можно установить на Mac, вы можете найти в App Store. Для этого откройте магазин приложений и нажмите на имя своей учетной записи в нижнем левом углу окна, а в открывшемся меню нажмите на вкладку «Приложения для iPhone и iPad».
Учтите, что разработчики могут запрещать установку iOS-приложений на Mac, в таком случае при попытке загрузки вы получите ошибку, а на странице приложения будет сообщение, что платформа не поддерживается. Но узнаете вы об этом только после нажатия на значок загрузки.
Ваши приложения для старого Mac уже работают с Apple M1
Популярные приложения уже адаптировали под Apple M1. Если вы на работе не используете редкий софт для построения геологических карт, скорее всего, все ваши программы уже поддерживают новые Mac. Поэтому для браузинга, работы с документами и множества других задач компьютеры с Apple M1 подходят так же хорошо, как и модели на Intel.
Например, под Apple M1 уже адаптировали браузер Google Chrome, мессенджеры Telegram и Discord, офисный пакет Microsoft. Также разработчики успели обновить более узкоспециализированный софт вроде Adobe Photoshop, Lightroom или Affinity Photo для обработки фотографий и иллюстраций, Figma для работы с интерфейсами или DaVinci Resolve для цветокоррекции и редактирования видео.
Если приложение не обновили под ARM, оно, скорее всего, будет работать. Даже спустя год встречаются приложения, не адаптированные для Apple M1. Но большинство работает с помощью транслятора Rosetta.
Когда вы попробуете первый раз запустить на Mac c M1 приложение для старой архитектуры x86, система сразу предложит вам установить Rosetta. После этого транслятор будет автоматически запускаться для всех программ без поддержки процессоров M1.
При этом транслятор работает незаметно для пользователя — не нужно что-то настраивать, потому что все процессы происходят в фоне. По интерфейсу приложения даже невозможно понять, что оно запущено через транслятор.
Например, для Apple M1 в начале 2022 года еще не обновили мессенджер WhatsApp и игровой магазин Steam. Но на новых Mac они запускаются через Rosetta и работают без проблем.
На Mac с Apple M1 мессенджер WhatsApp можно скачать прямо из App Store, процесс установки никак не отличается от установки на Mac c Intel
Неработающих приложений очень мало. Несмотря на работу Rosetta, некоторые приложения всё же могут не запуститься на компьютерах с Apple M1. Чаще всего это устаревшие программы или игры, которые давно не обновлялись и уже просто несовместимы с последними версиями macOS.
Список всех программ, которые не работают на Apple M1, можно посмотреть на сайте Isapplesiliconready.com . Там отмечено всего 49 приложений и игр — их так и не смогли запустить на новых Mac. Например, в этом списке можно найти старую версию торрент-клиента uTorrent Classic. Но эта программа не работает вообще на всех компьютерах с macOS Catalina или более современной версией системы — это касается моделей с процессорами Intel в том числе.
В качестве альтернативы от того же разработчика есть клиент uTorrent Web для браузеров — он работает на Mac с Apple M1, но это не отменяет того, что пиратство нарушает авторские права
Что еще может не работать на Apple M1
Windows официально не поддерживается. Одной из главных проблем новых Mac до сих пор остается отсутствие официальной поддержки Windows. Раньше операционную систему Microsoft (и другие программы и игры, у которых нет версий для Mac) можно было установить через стандартный инструмент Boot Camp, но с чипами Apple M1 это не работает.
Этой осенью журналисты сайта XDA Developers узнали, что Microsoft заключила эксклюзивную сделку с компанией Qualcomm. Поэтому Windows для архитектуры ARM сейчас работает только с чипами Snapdragon. Когда контракт закончится, неизвестно, но после этого Windows заработает на любых компьютерах с ARM — в том числе на Mac с Apple M1.
Запустить операционную систему Microsoft на новых Mac все-таки можно — через программу Parallels Desktop. По сути, программа создает виртуальный компьютер внутри вашей системы и запускает на нем полноценную Windows — она будет работать в отдельном окне, как обычное приложение. С Apple M1 через Parallels Desktop лучше использовать новую версию Windows 11, в которой появился полноценный транслятор для запуска x86-приложений.
Parallels Desktop 17 с поддержкой Apple M1 стоит от 4 788 ₽. Есть пробная версия на две недели
Для запуска Windows-приложений на macOS есть программа CrossOver — она полноценно работает на Apple M1, как и на старых Mac. Через нее программы устанавливаются и запускаются точно так же, как и обычные приложения для macOS.
CrossOver на macOS стоит 49,95 $. Есть бесплатная пробная версия на две недели
Для гейминга Mac всё еще плохо подходит. С появлением чипа Apple M1 ситуация с играми на компьютерах Apple никак не изменилась — их намного меньше, чем для Windows. При этом все старые игры на новых Mac работают без проблем — даже если их еще не обновили под ARM, поможет транслятор Rosetta. Список игр, которые точно запускаются на Apple M1, можно посмотреть на сайте AppleGamingWiki .
Игры для Windows можно запускать с помощью тех же CrossOver или Parallels. Второй вариант больше подходит для нетребовательных 2D-игр — виртуальная машина с Windows отнимает значительную часть производительности, так как работает одновременно с основной системой.
Apple M1 не поддерживает больше двух мониторов. Первый чип на архитектуре ARM от Apple для компьютеров имеет ограничение на аппаратном уровне: он может выводить изображение только на два экрана. У MacBook и iMac уже есть свой дисплей, поэтому к ним дополнительно подключается только один монитор.
Эту проблему решили в новых чипах Apple M1 Pro и M1 Max, которые появились в MacBook Pro 14 и Pro 16. Например, к ноутбуку с чипом M1 Max можно одновременно подключить три монитора с разрешением 6K и один 4K-телевизор.
К новым Mac нельзя подключить внешнюю видеокарту. Для старых компьютеров на Intel продаются специальные адаптеры, в которые можно вставить внешнюю видеокарту и подключить ее к компьютеру через USB Type-C. Так даже не очень мощный MacBook мог справиться с тяжелыми играми или сложным монтажом видео.
С новыми моделями на Apple M1 так сделать не получится, потому что видеокарты рассчитаны на старую архитектуру x86. Так что при выборе компьютера сразу берите модели с запасом мощности — например, новые MacBook Pro с чипами M1 Pro или M1 Max.
Mac на Intel скоро уйдут в прошлое
Компания Apple официально объявила, что в ближайшие 2–3 года полностью перейдет на компьютеры с чипами собственного производства. Она продолжит поддерживать модели на Intel и выпускать для них обновления, но новые модели на x86-архитектуре выходить больше не будут. Поэтому если вы привыкли к macOS и не хотите отказываться от всех купленных приложений, то рано или поздно вам придется перейти на Mac с М1.
Через год после выхода первых моделей на Apple M1 можно однозначно сказать, что переход компании на архитектуру ARM прошел удачно. Все популярные программы уже адаптированы под новые чипы или работают через транслятор Rosetta. MacBook Air и Pro живут в полтора-два раза дольше без подзарядки и меньше греются, а приложения работают быстрее.