Mojo, новый язык программирования, созданный Крисом Латтнером, создателем LLVM.

Моджо Ланг

Mojo — это новый язык программирования, который обещает лучшую производительность для разработки машинного обучения.

Несколько дней назад появилась новость о том, что Крис Латтнер, основатель и главный архитектор LLVM и Тим Дэвис, бывший руководитель проектов искусственного интеллекта в Google выпустил «Mojo», новый язык программирования, на основе Python, который устраняет проблемы с реализацией и производительностью Python.

Упоминается, что Моджо что сочетает в себе простоту использования для исследований и разработок и быстрое прототипирование с адекватностью для высокопроизводительных конечных продуктов. Первое достигается за счет использования знакомого синтаксиса языка Python, а второе — за счет возможности компиляции в машинный код, механизмов безопасного управления памятью и использования средств аппаратного ускорения вычислений.

О Моджо

Этот новый язык программирования фокусируется на использовании для разработки машинного обучения, но даe представлен как язык общего назначения который расширяет возможности языка Python при системном программировании и подходит для широкого круга задач.

Например, язык применим к таким областям, как высокопроизводительные вычисления, обработка данных и преобразование данных. Интересной особенностью Mojo является возможность указать символ эмодзи «🔥» в качестве расширения для файлов кода.

Проект рассчитан на задействование аппаратных ресурсов систем, имеющихся в системе в расчетах. Например, графические процессоры, специализированные ускорители машинного обучения и инструкции векторной обработки (SIMD) могут использоваться для запуска приложений Mojo и распараллеливания вычислений.

Причина разработки отдельного подмножества языка Python, а не присоединения к существующей работе по оптимизации CPython, указана как:

Подход к построению, интеграция возможностей программирования системы и использование принципиально иной внутренней архитектуры, позволяющей выполнять код на графических процессорах и различных аппаратных ускорителях. При этом разработчики Mojo намерены максимально придерживаться поддержки CPython.

Mojo можно использовать как в режиме JIT-интерпретации, так и для компиляции в исполняемые файлы. (АОТ, досрочно). Компилятор имеет встроенные современные технологии самооптимизации, кэширования и распределенной компиляции.

Код исходный код на языке Mojo преобразуется в низкоуровневый промежуточный код MLIR (Multi-Level Intermediate Representation), разработанный проектом LLVM и предоставляющий дополнительные функции для оптимизации обработки графов потоков данных.

Использование дополнительных аппаратных механизмов для ускорения вычислений позволяет добиться производительности, которая при интенсивных вычислениях превосходит приложения C/C++.

Крис Латтнер отвечает за создание многих проектов, на которые мы все сегодня полагаемся, хотя мы, возможно, даже не слышали обо всем, что он построил! В рамках своей докторской диссертации он начал разработку LLVM, которая коренным образом изменила способ построения компиляторов и сегодня составляет основу многих наиболее широко используемых в мире лингвистических экосистем.

Затем он выпустил Clang, компилятор C и C++, который работает поверх LLVM и используется большинством ведущих мировых разработчиков программного обеспечения (включая предоставление основы для критически важного для производительности кода) из Google). 

При оценке производительности в области устранения неполадок с машинным обучением стек ИИ Modular Inference Engine, написанный на языке Mojo, по сравнению с решением на основе библиотеки TensorFlow оказался в 3 раза быстрее на системе с процессором Intel.

Однако Крис увидел, что C и C++ не в полной мере используют возможности LLVM, поэтому, работая в Apple, он разработал новый язык под названием «Swift», который он описывает как «синтаксический сахар для LLVM». 

Стоит отметить, что язык поддерживает статическую типизацию и безопасные низкоуровневые функции памяти которые напоминают функции Rust, такие как отслеживание жизни и заимствование переменных (проверка кредита).

Помимо средств безопасной работы с указателями язык также предоставляет функции для низкоуровневой работы, например, можно получить прямой доступ к памяти в небезопасном режиме с помощью типа указателя, вызвать отдельные инструкции SIMD или получить доступ к аппаратным расширениям, таким как TensorCores и AMX.

В настоящее время, язык находится в стадии интенсивного развития и предлагается только интерфейс онлайн попробовать. В будущем обещают выпустить отдельные сборки для запуска на локальных системах позже, после получения отзывов о работе интерактивной веб-среды.

Открытый исходный код компилятора, JIT и другие связанные с проектом разработки планируются после завершения проектирования внутренней архитектуры (модель разработки закрытого рабочего прототипа напоминает раннюю стадию разработки LLVM, Clang и Swift).

Поскольку синтаксис Mojo основан на Python, а система типов близка к C/C++, в будущем планируется разработать набор инструментов, облегчающих перевод существующих проектов, написанных на C/C++ и Python, в Mojo, а также как разрабатывать гибридные проекты, сочетающие код Python и Mojo.

Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Хайме сказал

    интересная пирамида это…. (без акцентов)