Mojo, нова мова програмування, створена Крісом Латтнером, творцем LLVM

mojo lang

Mojo — це нова мова програмування, яка обіцяє кращу продуктивність для розробки машинного навчання

Кілька днів тому про це повідомила новина Кріс Латтнер, засновник і головний архітектор LLVM і Тім Девіс, колишній керівник проектів ШІ в Google випустив "Mojo", нову мову програмування, заснований на Python, який усуває проблеми з реалізацією Python і продуктивністю.

Згадується, що Mojo що поєднує в собі простоту використання для досліджень і розробок а також швидке створення прототипів з адекватністю для високопродуктивних кінцевих продуктів. Перше досягається за рахунок використання знайомого синтаксису мови Python, а друге — за рахунок можливості компіляції в машинний код, механізмів безпечного управління пам’яттю та використання засобів апаратного прискорення обчислень.

Про Моджо

Ця нова мова програмування фокусується на використанні для розробки машинного навчання, але такe представлена ​​як мова загального призначення який розширює можливості мови Python із системним програмуванням і підходить для широкого кола завдань.

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

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

Причиною розробки окремої підмножини мови Python, а не приєднання до існуючої роботи з оптимізації CPython, називають:

Підхід до збірки, інтеграція можливостей системного програмування та використання принципово іншої внутрішньої архітектури, яка дозволяє виконувати код на GPU та різних апаратних прискорювачах. При цьому розробники Mojo мають намір максимально дотримуватися підтримки CPython.

Mojo можна використовувати як у режимі інтерпретації JIT, так і для компіляції у виконувані файли (АОТ, достроково). Компілятор має вбудовані сучасні технології самооптимізації, кешування та розподіленої компіляції.

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

Використання додаткових апаратних механізмів для прискорення обчислень дозволяє досягти продуктивності, яка при інтенсивних обчисленнях перевершує додатки C/C++.

Кріс Латтнер відповідає за створення багатьох проектів, на які ми всі сьогодні покладаємося, хоча ми, можливо, навіть не чули про все, що він створив! У рамках своєї докторської дисертації він розпочав розробку LLVM, яка докорінно змінила спосіб побудови компіляторів і сьогодні є основою багатьох найбільш широко використовуваних у світі лінгвістичних екосистем.

Потім він випустив Clang, компілятор C і C++, який стоїть на основі LLVM і використовується більшістю провідних світових розробників програмного забезпечення (зокрема, забезпечує основу для коду, критичного для продуктивності). 

Під час оцінки ефективності у сфері усунення несправностей машинного навчання стек Modular Inference Engine AI, написаний мовою 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.   Хайме - сказав він

    цікавий цей Керн…. (без акцентів)