Mojo, novi programski jezik koji je kreirao Chris Lattner, kreator LLVM-a

mojo lang

Mojo je novi programski jezik koji obećava bolje performanse za razvoj mašinskog učenja

Prije nekoliko dana pojavile su se vijesti Chris Lattner, osnivač i glavni arhitekta LLVM i Tim Davis, bivši šef AI projekata u Googleu objavio "Mojo", novi programski jezik, baziran na Python-u, koji popravlja probleme s implementacijom i performansama Pythona.

Spominje se da je Mojo Que kombinuje jednostavnost upotrebe za istraživanje i razvoj i brzu izradu prototipa sa adekvatnošću za krajnje proizvode visokih performansi. Prvo se postiže korištenjem poznate sintakse jezika Python, a drugo zbog mogućnosti prevođenja u mašinski kod, mehanizama za sigurno upravljanje memorijom i upotrebe alata za hardversko ubrzanje proračuna.

O Moju

Ovaj novi programski jezik fokusira se na upotrebu za razvoj mašinskog učenja, ali dae predstavljen kao jezik opšte namene koji proširuje mogućnosti jezika Python sa sistemskim programiranjem i pogodan je za širok spektar zadataka.

Na primjer, jezik je primjenjiv u oblastima kao što su računarstvo visokih performansi, obrada podataka i transformacija podataka. Zanimljiva karakteristika Mojo-a je mogućnost da se navede “🔥” emoji simbol kao ekstenzija za datoteke koda.

Projekt je osmišljen tako da uključuje hardverske resurse sistema dostupnih u sistemu u proračunima. Na primjer, GPU-ovi, specijalizovani akceleratori mašinskog učenja i instrukcije za vektorsku obradu (SIMD) mogu se koristiti za pokretanje Mojo aplikacija i paraleliziranje računanja.

Razlog za razvoj zasebnog podskupa jezika Python, umjesto pridruživanja postojećem radu na optimizaciji CPython-a, navodi se kao:

Pristup izgradnje, integracija programskih mogućnosti sistema i upotreba fundamentalno različite interne arhitekture koja omogućava izvršavanje koda na GPU-ima i raznim hardverskim akceleratorima. U isto vrijeme, Mojo programeri namjeravaju da se drže podrške za CPython što je više moguće.

Mojo se može koristiti i u JIT načinu interpretacije i za kompilaciju u izvršne datoteke (AOT, unaprijed). Kompajler ima ugrađene moderne tehnologije za samooptimizaciju, keširanje i distribuiranu kompilaciju.

Kod izvorni kod na Mojo jeziku se pretvaraju u srednji kod niskog nivoa MLIR (Multi-Level Intermediate Representation), razvijen od strane LLVM projekta i pruža dodatne funkcije za optimizaciju obrade grafova tokova podataka.

Upotreba dodatnih hardverskih mehanizama za ubrzavanje računanja omogućava vam da postignete performanse koje, uz intenzivne proračune, nadmašuju C/C++ aplikacije.

Chris Lattner je odgovoran za kreiranje mnogih projekata na koje se svi danas oslanjamo, iako možda nismo ni čuli za sve što je napravio! Kao dio svoje doktorske teze, započeo je razvoj LLVM-a, koji je iz temelja promijenio način na koji su kompajleri izgrađeni i danas čini osnovu mnogih od najraširenijih svjetskih lingvističkih ekosistema.

Zatim je objavio Clang, C i C++ kompajler koji se nalazi na vrhu LLVM-a i koristi ga većina vodećih svjetskih programera softvera (uključujući pružanje okosnice za kod koji je kritičan za performanse) od Google-a). 

Prilikom procene performansi u oblasti rešavanja problema sa mašinskim učenjem, AI stack Modular Inference Engine napisan na Mojo jeziku, u poređenju sa rešenjem zasnovanim na TensorFlow biblioteci, bio je 3 puta brži na sistemu sa Intel procesorom.

Međutim, Chris je uvidio da C i C++ ne koriste u potpunosti moć LLVM-a, pa je dok je radio u Appleu dizajnirao novi jezik, nazvan "Swift", koji opisuje kao "sintaktički šećer za LLVM". 

Vredi napomenuti da je jezik podržava statičko kucanje i sigurne funkcije memorije niskog nivoa koje podsjećaju na Rust karakteristike kao što su praćenje referentnog životnog vijeka i varijabilno zaduživanje (provjera kredita).

Pored sredstava za siguran rad sa pokazivačima, jezik takođe nudi funkcije za rad na niskom nivou, na primjer, moguće je direktno pristupiti memoriji u nesigurnom načinu rada koristeći tip pokazivača, pozvati pojedinačne SIMD instrukcije ili pristupiti hardverskim ekstenzijama kao što su TensorCores i AMX.

Trenutno, jezik je u intenzivnom razvoju a nudi se samo interfejs online probati. Buduća obećanja su izdavanje zasebnih verzija koje će se kasnije izvoditi na lokalnim sistemima, nakon što dobijemo povratne informacije o radu interaktivnog web okruženja.

Otvoreni izvorni kod kompajlera, JIT-a i drugog razvoja u vezi sa projektom planira se nakon što se završi dizajn interne arhitekture (model razvoja za radni prototip zatvorenih vrata liči na ranu fazu razvoja LLVM, Clang i Swift).

Budući da je Mojo sintaksa zasnovana na Python-u i da je sistem tipova blizak C/C++, postoje planovi da se u budućnosti razvije skup alata koji će olakšati prevođenje postojećih projekata napisanih na C/C++ i Python-u u Mojo, takođe kao i za razvoj hibridnih projekata koji kombinuju Python i Mojo kod.

Konačno, ako vas zanima više o tome, možete se obratiti detaljima Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   jaime rekao je

    interesantno je ovo kolo... (bez akcenta)