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

mojo lang

Mojo е нов език за програмиране, който обещава по-добра производителност за развитие на машинно обучение

Преди няколко дни новината гръмна това Крис Латнър, основател и главен архитект на LLVM и Тим Дейвис, бивш ръководител на AI проекти в Google пусна "Mojo", нов език за програмиране, базиран на Python, който коригира проблеми с изпълнението и производителността на Python.

Споменава се, че Mojo че съчетава лекота на използване за R&D и бързо създаване на прототипи с адекватност за крайни продукти с висока производителност. Първото се постига чрез използването на познатия синтаксис на езика Python, а второто се дължи на възможността за компилиране в машинен код, механизми за безопасно управление на паметта и използване на инструменти за хардуерно ускорение на изчисленията.

Относно Mojo

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

Например, езикът е приложим в области като високопроизводителни изчисления, обработка на данни и трансформация на данни. Интересна функция на Mojo е възможността да се укаже символът на емотикони „🔥“ като разширение за кодови файлове.

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

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

Подход за изграждане, интегриране на възможностите за програмиране на системата и използване на фундаментално различна вътрешна архитектура, която позволява кодът да се изпълнява на GPU и различни хардуерни ускорители. В същото време разработчиците на Mojo възнамеряват да се придържат към поддръжката на CPython колкото е възможно повече.

Mojo може да се използва както в режим на интерпретация на JIT, така и за компилиране в изпълними файлове (AOT, преди време). Компилаторът има вградени съвременни технологии за самооптимизиране, кеширане и разпределена компилация.

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

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

Крис Латнър ​​е отговорен за създаването на много от проектите, на които всички разчитаме днес, въпреки че може дори да не сме чували за всичко, което е построил! Като част от своята докторска дисертация, той започна разработването на LLVM, което фундаментално промени начина, по който се изграждат компилаторите и днес формира основата на много от най-широко използваните езикови екосистеми в света.

След това той пусна Clang, C и C++ компилатор, който стои на върха на LLVM и се използва от повечето от най-добрите световни разработчици на софтуер (включително предоставяйки гръбнака за критичен за производителността код). на Google). 

При оценка на производителността в областта на отстраняването на неизправности в машинното обучение стекът на 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.   Хайме каза той

    интересен е този керн.... (без акценти)