Почему разработчики не успевают за Windows на Arm – объясняет Глеб Хмызников
Читать в полной версииРуководитель проекта Microsoft по переносу Python-библиотек рассказал, почему часть из них не работают на новых Copilot+ PC и как разработчики могут ускорить переход.
18 июня 2024 года Microsoft и ее партнеры начали продавать ноутбуки Copilot+ PC на процессорах Arm. Но большинство программ для Windows написаны под процессоры Intel и AMD, и далеко не все авторы успели переделать их под новую архитектуру, из-за чего покупателям и разработчикам пока сложно в полной мере воспользоваться преимуществами новых ноутбуков. О том, почему одни библиотеки уже работают на новом процессоре, а другие нет, поговорили с Глебом Хмызниковым, инженером-разработчиком Microsoft, который отвечает за работу Python и его библиотек на машинах с Arm.
Глеб, вы занимаетесь переносом Python-библиотек на новые ноутбуки и решаете проблемы, из-за которых часть из них до сих пор не запускается без эмуляции. Откуда вообще взялось это отставание?
Windows на Arm долго существовала в своеобразном вакууме. Разработчики не переходили на платформу, потому что там не было привычной среды, а авторы библиотек не спешили ее поддерживать, потому что пользователей было мало. Сейчас, когда у платформы становится больше пользователей, этот замкнутый круг начинает размыкаться.
Но ведь другая часть библиотек уже работает на Arm нативно. В чем разница между ними и теми, что пока не запускаются?
Легче всего переносятся библиотеки на распространенных языках: для них компиляторы под Arm уже есть, а за одной базовой библиотекой подтягиваются и те, что на нее опираются. Остальным мешает каждый раз что-то свое: где-то нет компилятора для нужного языка, где-то ломается сборка, а где-то просто нет готовой версии под Arm.
Одна из главных особенностей новых ноутбуков – встроенный нейропроцессор для задач ИИ. Могут ли разработчики на Python пользоваться им уже сейчас?
Могут, но пока через обходные пути. Самый рабочий вариант сейчас – ONNX Runtime, программа Microsoft для запуска ИИ-моделей, в связке с инструментами Qualcomm, которые дают к нейропроцессору прямой доступ. Поэтому мы и работаем вместе с производителями чипов: они лучше всех знают, как устроен их нейропроцессор и как задействовать его полностью.
Допустим, разработчик уже купил Arm-ноутбук. Как ему работать, пока не все библиотеки готовы?
Начать с нативного Python и проверить, какие из нужных ему библиотек уже работают напрямую. То, что не запускается, можно временно использовать через эмуляцию. И очень важно сообщать о сбоях публично. Отчет о том, какой пакет не собрался и на каком устройстве, экономит авторам библиотек время на поиск причины. Чем больше таких отчетов с разных машин, тем быстрее закрываются пробелы.
В июне вы оценивали проекты хакатона IAHD, много общались с разработчиками. Чего, по вашим ощущениям, профессиональное сообщество ждет от новых Arm-ноутбуков?
Разработчики ждут, что о процессоре не придется думать: открыл ноутбук, поставил привычные инструменты и работаешь. Плюс многих интересует запуск ИИ-моделей прямо на устройстве. И то и другое упирается в готовность библиотек.