Mojo, nauja programavimo kalba, sukurta Chriso Lattnerio, LLVM kūrėjo

mojo lang

Mojo yra nauja programavimo kalba, kuri žada geresnį našumą kuriant mašininį mokymąsi

Prieš kelias dienas tai pasklido žinia Chrisas Lattneris, LLVM įkūrėjas ir vyriausiasis architektas ir Timas Davisas, buvęs „Google“ AI projektų vadovas išleido naują programavimo kalbą „Mojo“, pagrįsta Python, kuri išsprendžia Python diegimo ir našumo problemas.

Minima, kad Mojo kad sujungia naudojimo paprastumą moksliniams tyrimams ir plėtrai ir greitas prototipų kūrimas, tinkamas didelio našumo galutiniams produktams. Pirmasis pasiekiamas naudojant pažįstamą Python kalbos sintaksę, o antroji – dėl galimybės kompiliuoti į mašininį kodą, saugaus atminties valdymo mechanizmų ir aparatinės įrangos skaičiavimų pagreitinimo įrankių.

Apie Mojo

Ši nauja programavimo kalba dėmesys skiriamas naudojimui mašininio mokymosi plėtrai, bet taipe pateikiama kaip bendrosios paskirties kalba kuris praplečia Python kalbos galimybes su sistemų programavimu ir tinka įvairiausioms užduotims.

Pavyzdžiui, ši kalba taikoma tokioms sritims kaip didelio našumo skaičiavimas, duomenų apdorojimas ir duomenų transformavimas. Įdomi „Mojo“ savybė yra galimybė nurodyti jaustukų simbolį „🔥“ kaip kodo failų plėtinį.

Projektas skirtas naudoti techninės įrangos išteklius sistemoje turimų sistemų skaičiavimuose. Pavyzdžiui, GPU, specializuoti mašininio mokymosi greitintuvai ir vektorinio apdorojimo instrukcijos (SIMD) gali būti naudojami Mojo programoms paleisti ir skaičiavimams lygiagretinti.

Priežastis sukurti atskirą Python kalbos pogrupį, o ne prisijungti prie esamo CPython optimizavimo darbų, nurodoma kaip:

Konstravimo metodas, sistemos programavimo galimybių integravimas ir iš esmės skirtingos vidinės architektūros naudojimas, leidžiantis vykdyti kodą GPU ir įvairiuose aparatinės įrangos greitintuvuose. Tuo pačiu metu „Mojo“ kūrėjai ketina kiek įmanoma laikytis „CPython“ palaikymo.

Mojo gali būti naudojamas tiek JIT interpretacijos režimu, tiek kompiliavimui į vykdomuosius failus (AOT, anksčiau laiko). Kompiliatoriuje yra įmontuotos modernios savaiminio optimizavimo, talpyklos kaupimo ir paskirstyto kompiliavimo technologijos.

Kodas šaltinio kodas Mojo kalba konvertuojamas į žemo lygio tarpinį kodą MLIR (Multi-Level Intermediate Representation), sukurta pagal LLVM projektą ir suteikianti papildomų funkcijų, optimizuojančių duomenų srautų grafikų apdorojimą.

Papildomų aparatinės įrangos mechanizmų naudojimas, siekiant pagreitinti skaičiavimus, leidžia pasiekti našumą, kuris intensyviai skaičiuojant pranoksta C/C++ programas.

Chrisas Lattneris yra atsakingas už daugelio projektų, kuriais šiandien pasitikime, kūrimą, nors galbūt net nesame girdėję apie viską, ką jis sukūrė! Vykdydamas daktaro disertaciją, jis pradėjo kurti LLVM, kuri iš esmės pakeitė kompiliatorių kūrimo būdą ir šiandien yra daugelio pasaulyje plačiausiai naudojamų kalbinių ekosistemų pagrindas.

Tada jis išleido „Clang“ – C ir C++ kompiliatorių, kuris yra ant LLVM ir kurį naudoja dauguma geriausių pasaulio programinės įrangos kūrėjų (įskaitant našumui svarbio kodo pagrindą). 

Vertinant našumą mašininio mokymosi trikčių šalinimo srityje, buvo nustatyta, kad Mojo kalba parašytas Modular Inference Engine AI stack, palyginti su TensorFlow biblioteka pagrįstu sprendimu, sistemoje su Intel procesoriumi yra 3 kartus greitesnis.

Tačiau Chrisas pamatė, kad C ir C++ neišnaudoja visų LLVM galių, todėl dirbdamas „Apple“ sukūrė naują kalbą, pavadintą „Swift“, kurią jis apibūdina kaip „LLVM sintaksės cukrų“. 

Verta paminėti, kad kalba palaiko statinį spausdinimą ir saugias žemo lygio atminties funkcijas kurios primena Rust ypatybes, tokias kaip atskaitos gyvavimo stebėjimas ir kintamasis skolinimasis (paskolų tikrintuvas).

Be saugaus darbo su rodyklėmis priemonių, kalba taip pat suteikia funkcijų žemo lygio darbui, Pavyzdžiui, nesaugiu režimu galima tiesiogiai pasiekti atmintį naudojant žymiklio tipą, iškviesti atskiras SIMD instrukcijas arba pasiekti aparatinės įrangos plėtinius, tokius kaip TensorCores ir AMX.

Šiuo metu kalba intensyviai vystoma ir siūloma tik sąsaja internetu išbandyti. Ateityje žadama išleisti atskiras versijas, kurios galėtų veikti vietinėse sistemose vėliau, gavus atsiliepimų apie interaktyvios žiniatinklio aplinkos darbą.

Kompiliatoriaus atvirojo kodo, JIT ir kitos su projektu susijusios plėtros planuojama užbaigus vidinės architektūros projektą (uždarų durų darbo prototipo kūrimo modelis primena ankstyvąjį LLVM, Clang ir Swift kūrimo etapą).

Kadangi Mojo sintaksė yra pagrįsta Python, o tipų sistema yra artima C/C++, ateityje planuojama sukurti įrankių rinkinį, kuris palengvintų esamų projektų, parašytų C/C++ ir Python kalbomis, vertimą į Mojo. kaip sukurti hibridinius projektus, kuriuose derinamas Python ir Mojo kodai.

Galiausiai, jei jus domina daugiau apie tai sužinoti, galite susipažinti su išsamia informacija Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   jaime sakė

    įdomu tai slypi... (be akcentų)