[ad_1]
Modular, стартап в области искусственного интеллекта с технической репутацией выше среднего, представил язык программирования под названием Mojo, который стремится объединить удобство использования Python со скоростью C.
Существует множество текущих проектов, направленных на ускорение Python, таких как Jax и совсем недавно компилятор Python под названием Codon. И это не говоря об альтернативных языках, ориентированных на науку о данных, таких как Julia.
Mojo удается отличиться от других усилий по совершенствованию Python благодаря заявленному ускорению — в 35 000 раз быстрее, чем Python при выполнении числовых алгоритмов, таких как Мандельброт, благодаря аппаратному ускорению — и родословной генерального директора Криса Латтнера.
Mojo сочетает в себе части Python, которые нравятся исследователям, с функциями системного программирования, требующими использования C, C++ и CUDA.
Последний, ветеран Apple, Googleи Tesla совместно разработали цепочку инструментов компилятора LLVM, соучредили инфраструктуру компилятора MLIR и возглавили разработку языка программирования Swift. А его соучредитель Modular Тим Дэвис также обладает значительным опытом в качестве бывшего лидера Google ML, где он курировал API-интерфейсы машинного обучения веб-гиганта, компиляторы и инфраструктуру времени выполнения.
На этой неделе стартап объявил о двух связанных проектах: Mojo, языке программирования, созданном на основе Python, который обещает производительность C; и предположительно портативный, производительный модульный механизм вывода для менее затратного запуска моделей ИИ в производстве — вывод — это использование модели после ее обучения.
«Mojo сочетает в себе части Python, которые нравятся исследователям, с функциями системного программирования, которые требуют использования C, C++ и CUDA», — пояснили в бизнесе.
«Mojo построен на основе технологий компиляции следующего поколения, которые открывают значительный прирост производительности при добавлении типов в ваши программы, позволяют вам определять абстракции с нулевой стоимостью, извлекают выгоду из безопасности памяти, подобной Rust, а также обеспечивают уникальную автонастройку и компиляцию. возможности метапрограммирования времени».
Используя преимущества MLIR, код Mojo может получить доступ к различным аппаратным функциям, настроенным с помощью ИИ, таким как TensorCores и расширения AMX. В результате для некоторых типов алгоритмов он намного быстрее, чем обычный Python — 0,03 секунды при запуске алгоритма Мандельброта на AWS r7iz.metal-16xl по сравнению с 1027 секундами (около 17 минут) для Python 3.10.9.
НЗП
Mojo все еще находится в разработке, хотя есть блокнот Jupyter, чтобы попробовать его. Ожидается, что когда он будет завершен, он станет расширенным набором Python — экосистемой Python с набором инструментов для системного программирования. В таком виде он должен запускать любую программу Python. Но на данный момент, несмотря на то, что Mojo поддерживает основные функции Python, включая async/await, обработку ошибок и вариативность, для достижения полной совместимости еще предстоит проделать большую работу.
В заявлении, сделанном в четверг, специалист по данным Джереми Ховард, соучредитель Fast.ai, сказал: «Mojo может стать самым большим достижением в области языка программирования за последние десятилетия».
Mojo, объясняет Ховард, пытается решить раздвоенную реальность ИИ: в то время как модели ИИ разрабатываются на Python из-за богатства экосистемы, программисты на Python обычно заканчивают связывать свой код с модулями на более производительных языках, таких как C/C++ и Rust. . И этот «двуязычный» подход усложняет профилирование, отладку, изучение и развертывание приложений машинного обучения.
«Ключевой трюк в Mojo заключается в том, что вы можете в любое время выбрать более быстрый «режим» как разработчик, используя «fn» вместо «def» для создания своей функции», — объясняет Ховард. «В этом режиме вы должны точно указать тип каждой переменной, и в результате Mojo может создать оптимизированный машинный код для реализации вашей функции.
«Более того, если вы используете «структуру» вместо «класса», ваши атрибуты будут плотно упакованы в память, так что их можно будет использовать даже в структурах данных, не гоняясь за указателями. Это те функции, которые позволяют языкам вроде C чтобы быть такими быстрыми, и теперь они доступны и для программистов Python — просто изучив немного нового синтаксиса».
Еще одним преимуществом Mojo является то, что код может быть скомпилирован в автономный, быстро запускаемый двоичный файл, что упрощает развертывание с использованием доступных ядер и ускорения.
Есть еще некоторые недостающие элементы, такие как управление пакетами и система сборки — то, с чем сообщество Python продолжает бороться. И язык еще не находится под лицензией с открытым исходным кодом, хотя ожидается, что это будетв конце концов.
«Mojo еще не закончен, но то, что есть, уже умопомрачительно, и оно было создано очень небольшой командой за очень короткое время», — сказал Ховард. через твиттер. «Это показывает преимущества использования тщательно спроектированных фундаментов, основанных на [Lattner’s] многолетний опыт работы с Clang, LLVM и Swift.” ®
[ad_2]