Mojo, nový programovací jazyk vytvorený Chrisom Lattnerom, tvorcom LLVM

mojo lang

Mojo je nový programovací jazyk, ktorý sľubuje lepší výkon pre vývoj strojového učenia

Pred pár dňami to priniesla správa Chris Lattner, zakladateľ a hlavný architekt LLVM a Tim Davis, bývalý vedúci projektov AI v spoločnosti Google vydala "Mojo", nový programovací jazyk, založený na Pythone, ktorý opravuje problémy s implementáciou a výkonom Pythonu.

Spomína sa, že Mojo že spája jednoduchosť použitia pre výskum a vývoj a rýchle prototypovanie s primeranosťou pre vysokovýkonné koncové produkty. Prvý je dosiahnutý použitím známej syntaxe jazyka Python a druhý je spôsobený schopnosťou kompilovať do strojového kódu, mechanizmami na bezpečnú správu pamäte a použitím nástrojov na hardvérovú akceleráciu výpočtov.

O Mojovi

Tento nový programovací jazyk sa zameriava na využitie pre rozvoj strojového učenia, ale ánoe prezentované ako všeobecný jazyk ktorý rozširuje možnosti jazyka Python o systémové programovanie a je vhodný pre široké spektrum úloh.

Jazyk je napríklad použiteľný v oblastiach, ako je vysokovýkonná výpočtová technika, spracovanie údajov a transformácia údajov. Zaujímavou funkciou Mojo je možnosť špecifikovať symbol emoji „🔥“ ako príponu pre súbory s kódom.

Projekt je navrhnutý tak, aby zahŕňal hardvérové ​​zdroje systémov dostupných v systéme vo výpočtoch. Napríklad GPU, špecializované urýchľovače strojového učenia a inštrukcie na spracovanie vektorov (SIMD) možno použiť na spúšťanie aplikácií Mojo a paralelizáciu výpočtov.

Dôvod pre vývoj samostatnej podmnožiny jazyka Python, namiesto pripojenia sa k existujúcej optimalizačnej práci CPythonu, sa uvádza ako:

Prístup k zostaveniu, integrácia programovacích možností systému a použitie zásadne odlišnej internej architektúry, ktorá umožňuje spúšťanie kódu na GPU a rôznych hardvérových akcelerátoroch. Vývojári Mojo sa zároveň chcú čo najviac držať podpory CPythonu.

Mojo je možné použiť v režime interpretácie JIT aj na kompiláciu do spustiteľných súborov (AOT, v predstihu). Kompilátor má vstavané moderné technológie na samooptimalizáciu, ukladanie do vyrovnávacej pamäte a distribuovanú kompiláciu.

Kód zdrojové kódy v jazyku Mojo sú konvertované na nízkoúrovňový stredný kód MLIR (Multi-Level Intermediate Representation), vyvinutý v rámci projektu LLVM a poskytujúci ďalšie funkcie na optimalizáciu spracovania grafov toku údajov.

Použitie dodatočných hardvérových mechanizmov na zrýchlenie výpočtov vám umožňuje dosiahnuť výkon, ktorý pri intenzívnych výpočtoch prekonáva aplikácie v C/C++.

Chris lattner je zodpovedný za vytvorenie mnohých projektov, na ktoré sa dnes všetci spoliehame, aj keď sme možno ani nepočuli o všetkom, čo vybudoval! V rámci svojej doktorandskej práce začal s vývojom LLVM, ktorý zásadne zmenil spôsob zostavovania kompilátorov a dnes tvorí základ mnohých svetovo najpoužívanejších lingvistických ekosystémov.

Potom vydal Clang, kompilátor C a C++, ktorý je umiestnený nad LLVM a používa ho väčšina popredných svetových vývojárov softvéru (vrátane poskytovania chrbtovej siete pre kód kritický z hľadiska výkonu). 

Pri hodnotení výkonu v oblasti riešenia problémov strojového učenia sa zistilo, že zásobník Modular Inference Engine AI napísaný v jazyku Mojo je v porovnaní s riešením založeným na knižnici TensorFlow 3-krát rýchlejší na systéme s procesorom Intel.

Chris však videl, že C a C++ nevyužívajú naplno silu LLVM, a tak počas práce v Apple navrhol nový jazyk nazvaný „Swift“, ktorý opisuje ako „syntax cukor pre LLVM“. 

Za zmienku stojí, že jazyk podporuje statické písanie a bezpečné nízkoúrovňové pamäťové funkcie ktoré pripomínajú funkcie Rust, ako je sledovanie referenčného života a variabilné požičiavanie (kontrola pôžičiek).

Okrem prostriedkov na bezpečnú obsluhu s ukazovateľmi, jazyk poskytuje aj funkcie pre prácu na nízkej úrovni, napríklad je možné priamo pristupovať do pamäte v nebezpečnom režime pomocou typu ukazovateľa, volať jednotlivé inštrukcie SIMD alebo pristupovať k hardvérovým rozšíreniam, ako sú TensorCores a AMX.

V súčasnej dobe, jazyk sa intenzívne vyvíja a ponúka sa iba rozhranie online vyskúšať. Budúcimi prísľubmi je vydať samostatné zostavy, ktoré sa budú spúšťať na lokálnych systémoch neskôr, po získaní spätnej väzby o práci interaktívneho webového prostredia.

Otvorený zdrojový kód kompilátora, JIT a ďalší vývoj súvisiaci s projektom sa plánuje po dokončení návrhu vnútornej architektúry (vývojový model pre pracovný prototyp so zatvorenými dverami sa podobá ranému štádiu vývoja LLVM, Clang a Swift).

Keďže syntax Mojo je založená na Pythone a typový systém je blízky C/C++, v budúcnosti sa plánuje vyvinúť súbor nástrojov, ktoré uľahčia preklad existujúcich projektov napísaných v C/C++ a Pythone do Mojo. ako vyvinúť hybridné projekty, ktoré kombinujú kód Python a Mojo.

Nakoniec, ak máte záujem dozvedieť sa o tom viac, môžete sa obrátiť na podrobnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Jaime dijo

    zaujimave toto.... (bez akcentov)