LLVM Creator þróar nýtt Mojo forritunarmál

Chris Lattner, stofnandi og aðalarkitekt LLVM og skapari Swift forritunarmálsins, og Tim Davis, fyrrverandi yfirmaður gervigreindarverkefna Google eins og Tensorflow og JAX, kynntu nýtt forritunarmál, Mojo, sem sameinar auðveld notkun fyrir rannsóknarþróun og hröð frumgerð með möguleika á að móta hágæða lokaafurðir. Hið fyrra er náð með því að nota kunnuglega setningafræði Python tungumálsins og hið síðara með hæfileikanum til að safna saman í vélkóða, minnisöruggum aðferðum og notkun vélbúnaðarhröðunarverkfæra.

Verkefnið beinist að notkun til þróunar á sviði vélanáms, en er sett fram sem almennt tungumál sem eykur getu Python með kerfisforritunarverkfærum og hentar fyrir margvísleg verkefni. Til dæmis á tungumálið við á sviðum eins og afkastamikilli tölvuvinnslu, gagnavinnslu og umbreytingu. Áhugaverður eiginleiki Mojo er hæfileikinn til að tilgreina emoji-stafinn „🔥“ sem viðbót fyrir kóðaskrár (til dæmis „helloworld.🔥“), auk textaviðbótarinnar „.mojo“.

Sem stendur er tungumálið á stigi mikillar þróunar og aðeins netviðmótið er boðið til prófunar. Lofað er að aðskildar samsetningar til að keyra á staðbundnum kerfum verði birtar síðar, eftir að hafa fengið endurgjöf um rekstur gagnvirka vefumhverfisins. Fyrirhugað er að opna frumkóðann fyrir þýðandann, JIT og aðra þróun sem tengist verkefninu eftir að innri arkitektúr er lokið (líkanið til að þróa virka frumgerð á bak við luktar dyr minnir á upphafsstig þróunar LLVM, Clang og Swift). Þar sem Mojo setningafræðin er byggð á Python tungumálinu, og tegundakerfið er nálægt C/C++, ætla þeir í framtíðinni að þróa verkfæri til að einfalda þýðingu á núverandi verkefnum sem eru skrifuð í C/C++ og Python yfir í Mojo, sem og að þróa blendingaverkefni sem sameina Python kóða og Mojo.

Verkefnið er hannað til að virkja tiltækar vélbúnaðarauðlindir ólíkra kerfa við útreikninga. Til dæmis er hægt að nota GPU, sérhæfða vélnámshraða og örgjörvaleiðbeiningavektora (SIMD) til að keyra Mojo forrit og samhliða útreikningum. Ástæðurnar sem gefnar eru upp fyrir því að þróa sérstakt undirmengi Python tungumálsins frekar en að taka þátt í núverandi CPython hagræðingarvinnu eru meðal annars áherslu á samantekt, samþættingu kerfisforritunarmöguleika og notkun á grundvallaratriðum ólíkum innri arkitektúr sem gerir kóða kleift að keyra á GPU og ýmsum vélbúnaðarhraðlar. Hins vegar ætla Mojo verktaki að vera samhæfður við CPython eins mikið og mögulegt er.

Hægt er að nota Mojo bæði í túlkunarham með JIT og til að safna saman í keyranlegar skrár (AOT, fyrirfram). Þýðandinn hefur innbyggða nútímatækni fyrir sjálfvirka hagræðingu, skyndiminni og dreifða samantekt. Upprunatextum á Mojo tungumálinu er breytt í lágstigs millikóða MLIR (Multi-Level Intermediate Representation), þróaður af LLVM verkefninu og veitir viðbótarmöguleika til að hámarka vinnslu gagnaflæðis línuritsins. Þjálfarinn gerir þér kleift að nota ýmsa bakenda sem styðja MLIR til að búa til vélkóða.

Með því að nota viðbótar vélbúnaðarkerfi til að flýta útreikningum er hægt að ná frammistöðu sem er betri en C/C++ forrit meðan á erfiðum útreikningum stendur. Til dæmis, þegar forrit var prófað til að búa til Mandelbrot settið, reyndist samsett forrit á Mojo tungumálinu þegar það var keyrt í AWS skýinu (r7iz.metal-16xl) vera 6 sinnum hraðar en útfærslan í C++ (0.03 sek. vs. . 0.20 sek.), og einnig 35 þúsund sinnum hraðar en Python forrit þegar notað er staðlað CPython 3.10.9 (0.03 sek. á móti 1027 sek.) og 1500 sinnum hraðar þegar PYPY er notað (0.03 sek. á móti 46.1 sek.) .

Við mat á frammistöðu á sviði við að leysa vélanámsvandamál var AI stafla Modular Inference Engine, skrifuð á Mojo tungumálinu, samanborið við lausn byggða á TensorFlow bókasafninu, þrisvar sinnum hraðari þegar unnið var úr tungumálalíkani á kerfi með Intel örgjörva, 3 sinnum hraðari þegar unnið er úr framkvæmd meðmæla kynslóðar líkansins og 6.4 sinnum hraðar þegar unnið er með líkön til að vinna sjónrænar upplýsingar. Þegar þú notar AMD örgjörva var hagnaðurinn við notkun Mojo 2.1, 3.2 og 5 sinnum, og þegar þú notar ARM örgjörva - 2.2, 5.3 og 7.5 sinnum, í sömu röð. PyTorch-undirstaða lausnin var 1.7, 1.4 og 1.1 sinnum á eftir Mojo á Intel örgjörvum, 1.5, 2.1 og 1.2 sinnum á AMD örgjörvum og 1.5, 4 og 4.3 sinnum á ARM örgjörvum.

LLVM Creator þróar nýtt Mojo forritunarmál

Tungumálið styður fasta innslátt og minnisörugga eiginleika sem minna á Rust, eins og viðmiðunarlíftímarakningu og lánaafgreiðslu. Auk aðstöðu fyrir örugga vinnu með ábendingum býður tungumálið einnig upp á eiginleika fyrir vinnu á lágu stigi, til dæmis beinan aðgang að minni í óöruggri stillingu með því að nota Pointer gerð, hringja í einstakar SIMD leiðbeiningar eða aðgang að vélbúnaðarviðbótum eins og TensorCores og AMX .

LLVM Creator þróar nýtt Mojo forritunarmál

Til að einfalda aðskilnað klassísks og bjartsýnis Python kóða fyrir aðgerðir með skýrum tegundaskilgreiningum fyrir allar breytur, er lagt til að nota sérstakt lykilorð „fn“ í stað „def“. Á sama hátt fyrir flokka, ef þú þarft að pakka gögnum á kyrrstöðu í minni meðan á söfnun stendur (eins og í C), geturðu notað „struct“ gerð í stað „class“. Það er líka hægt að flytja einfaldlega inn einingar á C/C++ tungumálum, til dæmis til að flytja inn cos fallið úr stærðfræðisafninu geturðu tilgreint „frá „math.h“ import cos“.

Heimild: opennet.ru

Bæta við athugasemd