Modular представляет Mojo, расширенный набор Python со скоростью C-уровня

    0
    78

    [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]

    Предыдущая статьяRedfall: Руководство по часто задаваемым вопросам
    Следующая статьяMIUI 14 будет выпущена к 10 июня Poco смартфоны
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.