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

mojo lang

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

Prije nekoliko dana pojavila se vijest o tome Chris Lattner, osnivač i glavni arhitekt LLVM i Tim Davis, bivši voditelj AI projekata u Googleu izdao "Mojo", novi programski jezik, temeljen na Pythonu, koji popravlja probleme s implementacijom i performansama Pythona.

Spominje se da je Mojo ovo kombinira jednostavnost korištenja za istraživanje i razvoj i brza izrada prototipova s ​​prikladnošću za krajnje proizvode visokih performansi. Prvo se postiže korištenjem poznate sintakse jezika Python, a drugo zahvaljujući mogućnosti prevođenja u strojni kod, mehanizmima za sigurno upravljanje memorijom i korištenju alata za hardversko ubrzanje izračuna.

O Moju

Ovaj novi programski jezik fokusira se na korištenje za razvoj strojnog učenja, ali dae predstavljen kao jezik opće namjene koji proširuje mogućnosti jezika Python sa sistemskim programiranjem i prikladan je za širok raspon zadataka.

Na primjer, jezik je primjenjiv na područja kao što su računalstvo visokih performansi, obrada podataka i transformacija podataka. Zanimljiva značajka Mojoa je mogućnost navođenja simbola emotikona "🔥" kao ekstenzije za kodne datoteke.

Projekt je osmišljen tako da uključuje hardverske resurse sustava dostupnih u sustavu u izračunima. Na primjer, GPU-ovi, specijalizirani akceleratori strojnog učenja i instrukcije za vektorsku obradu (SIMD-ovi) mogu se koristiti za pokretanje Mojo aplikacija i paraleliziranje izračuna.

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

Pristup izgradnji, integracija mogućnosti programiranja sustava i korištenje fundamentalno drugačije interne arhitekture koja omogućuje izvođenje koda na GPU-ovima i raznim hardverskim akceleratorima. U isto vrijeme, Mojo programeri namjeravaju se držati CPython podrške što je više moguće.

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

Kod izvorni kod u Mojo jeziku pretvara se u međukod niske razine MLIR (Multi-Level Intermediate Representation), razvijen od strane LLVM projekta i pruža dodatne funkcije za optimizaciju obrade grafova protoka podataka.

Korištenje dodatnih hardverskih mehanizama za ubrzavanje računanja omogućuje postizanje performansi koje, uz intenzivna računanja, nadmašuju C/C++ aplikacije.

Chris lattner odgovoran je za stvaranje mnogih projekata na koje se danas svi oslanjamo, iako možda nismo ni čuli za sve što je napravio! Kao dio svoje doktorske disertacije, započeo je razvoj LLVM-a, koji je iz temelja promijenio način na koji se kompilatori izgrađuju i danas čini osnovu mnogih svjetski najkorištenijih jezičnih ekosustava.

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

Pri ocjenjivanju performansi u području rješavanja problema strojnog učenja, Modular Inference Engine AI stog napisan na Mojo jeziku, u usporedbi s rješenjem temeljenim na biblioteci TensorFlow, pokazao se 3 puta bržim na sustavu s Intelovim procesorom

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

Vrijedno je spomenuti da jezik podržava statičko tipkanje i značajke sigurne memorije niske razine koje podsjećaju na značajke Rusta kao što su referentno praćenje životnog vijeka i varijabilno posuđivanje (loan checker).

Osim sredstava za siguran rad s pokazivačima, jezik također pruža značajke za rad na niskoj razini, na primjer, moguće je izravno pristupiti memoriji u nesigurnom načinu rada koristeći tip pokazivača, pozvati pojedinačne SIMD upute ili pristupiti hardverskim proširenjima kao što su TensorCores i AMX.

Trenutno, jezik je u intenzivnom razvoju a nudi se samo sučelje online za isprobavanje. Buduća obećanja su izdavanje zasebnih verzija za pokretanje na lokalnim sustavima kasnije, nakon što dobiju povratne informacije o radu interaktivnog web okruženja.

Otvoreni izvorni kod prevoditelja, JIT-a i drugog razvoja povezanog s projektom planira se nakon završetka dizajna interne arhitekture (razvojni model za radni prototip zatvorenih vrata nalikuje ranoj fazi razvoja LLVM-a, Clanga i Swifta).

Budući da se Mojo sintaksa temelji na Pythonu, a sustav tipova blizak C/C++, u budućnosti se planira razviti skup alata za lakše prevođenje postojećih projekata napisanih u C/C++ i Pythonu u Mojo, također za razvoj hibridnih projekata koji kombiniraju Python i Mojo kod.

Konačno, ako vas zanima više o tome, možete se posavjetovati s pojedinostima U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Jaime dijo

    zanimljiv je ovaj cairn.... (bez naglasaka)