Mojo, nový programovací jazyk vytvořený Chrisem Lattnerem, tvůrcem LLVM

mojo lang

Mojo je nový programovací jazyk, který slibuje lepší výkon pro vývoj strojového učení

Před pár dny to přinesla zpráva Chris Lattner, zakladatel a hlavní architekt LLVM a Tim Davis, bývalý vedoucí projektů AI ve společnosti Google vydala "Mojo", nový programovací jazyk, založené na Pythonu, který opravuje problémy s implementací Pythonu a výkonem.

Je zmíněno, že Mojo že kombinuje snadnost použití pro výzkum a vývoj a rychlé prototypování s přiměřeností pro vysoce výkonné koncové produkty. Toho prvního je dosaženo použitím známé syntaxe jazyka Python a toho druhého je způsobeno schopností kompilace do strojového kódu, mechanismy pro bezpečnou správu paměti a použitím nástrojů pro hardwarovou akceleraci výpočtů.

O Mojovi

Tento nový programovací jazyk se zaměřuje na využití pro vývoj strojového učení, ale anoe prezentovány jako univerzální jazyk který rozšiřuje možnosti jazyka Python o systémové programování a je vhodný pro širokou škálu úloh.

Jazyk je například použitelný v oblastech, jako jsou vysoce výkonné výpočty, zpracování dat a transformace dat. Zajímavou funkcí Mojo je možnost specifikovat symbol emoji „🔥“ jako příponu pro soubory kódu.

Projekt je navržen tak, aby zahrnoval hardwarové zdroje systémů dostupných v systému ve výpočtech. Například GPU, specializované akcelerátory strojového učení a instrukce pro vektorové zpracování (SIMD) lze použít ke spouštění aplikací Mojo a paralelizaci výpočtů.

Důvod pro vývoj samostatné podmnožiny jazyka Python, spíše než připojení ke stávající optimalizační práci CPythonu, je citován jako:

Přístup k sestavení, integrace programovacích schopností systému a použití zásadně odlišné vnitřní architektury, která umožňuje spouštění kódu na GPU a různých hardwarových akcelerátorech. Vývojáři Mojo se zároveň hodlají co nejvíce držet podpory CPythonu.

Mojo lze použít jak v režimu interpretace JIT, tak pro kompilaci do spustitelných souborů (AOT, v předstihu). Kompilátor má vestavěné moderní technologie pro vlastní optimalizaci, ukládání do mezipaměti a distribuovanou kompilaci.

Kód zdrojové kódy v jazyce Mojo jsou převedeny na nízkoúrovňový střední kód MLIR (Multi-Level Intermediate Representation), vyvinutý projektem LLVM a poskytující další funkce pro optimalizaci zpracování grafů toku dat.

Použití dalších hardwarových mechanismů pro urychlení výpočtů umožňuje dosáhnout výkonu, který při intenzivních výpočtech překonává aplikace C/C++.

Chris lattner je zodpovědný za vytvoření mnoha projektů, na které dnes všichni spoléháme, i když jsme možná ani neslyšeli o všem, co postavil! V rámci své doktorské práce zahájil vývoj LLVM, který zásadně změnil způsob, jakým jsou sestavovány kompilátory, a dnes tvoří základ mnoha světově nejrozšířenějších lingvistických ekosystémů.

Poté vydal Clang, kompilátor C a C++, který je umístěn nad LLVM a je používán většinou předních světových vývojářů softwaru (včetně poskytování páteře pro kód kritický pro výkon). 

Při hodnocení výkonu v oblasti odstraňování problémů se strojovým učením bylo zjištěno, že zásobník Modular Inference Engine AI napsaný v jazyce Mojo je v porovnání s řešením založeným na knihovně TensorFlow 3krát rychlejší na systému s procesorem Intel.

Chris však viděl, že C a C++ plně nevyužívají sílu LLVM, a tak při práci v Applu navrhl nový jazyk nazvaný „Swift“, který popisuje jako „syntaktický cukr pro LLVM“. 

Za zmínku stojí, že jazyk podporuje statické psaní a bezpečné nízkoúrovňové paměťové funkce které připomínají funkce Rust, jako je sledování referenčního života a variabilní půjčování (loan checker).

Kromě prostředků pro bezpečnou obsluhu s ukazateli, jazyk poskytuje také funkce pro práci na nízké úrovni, je například možné přímo přistupovat do paměti v nebezpečném režimu pomocí typu ukazatele, volat jednotlivé instrukce SIMD nebo přistupovat k hardwarovým rozšířením, jako jsou TensorCores a AMX.

V současné době, jazyk se intenzivně vyvíjí a nabízí se pouze rozhraní online vyzkoušet. Budoucí sliby spočívají v tom, že po obdržení zpětné vazby o práci interaktivního webového prostředí budou vydána samostatná sestavení, která budou spuštěna na místních systémech později.

Otevřený zdrojový kód kompilátoru, JIT a další vývoj související s projektem je plánován po dokončení návrhu vnitřní architektury (vývojový model pro pracovní prototyp s uzavřenými dveřmi se podobá rané fázi vývoje LLVM, Clang a Swift).

Vzhledem k tomu, že syntaxe Mojo je založena na Pythonu a typový systém je blízký C/C++, v budoucnu se plánuje vývoj sady nástrojů, které usnadní překlad existujících projektů napsaných v C/C++ a Pythonu do Mojo. jako vývoj hybridních projektů, které kombinují kód Python a Mojo.

Konečně, pokud máte zájem dozvědět se o tom více, můžete konzultovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Jaime řekl

    zajímavé to mohyly.... (žádné akcenty)