Mojo, jaunā programmēšanas valoda, ko radījis LLVM radītājs Kriss Latners

mojo lang

Mojo ir jauna programmēšanas valoda, kas sola labāku veiktspēju mašīnmācības attīstībai

Pirms dažām dienām par to atklājās ziņas Kriss Lattners, LLVM dibinātājs un galvenais arhitekts un Tims Deiviss, bijušais Google AI projektu vadītājs izlaida "Mojo", jaunu programmēšanas valodu, pamatojoties uz Python, kas novērš Python ieviešanas un veiktspējas problēmas.

Tiek minēts, ka Mojo ka apvieno lietošanas vienkāršību pētniecībai un attīstībai un ātra prototipu izstrāde ar piemērotību augstas veiktspējas galaproduktiem. Pirmais tiek panākts, izmantojot pazīstamo Python valodas sintaksi, bet otrais ir saistīts ar spēju kompilēt mašīnkodā, drošas atmiņas pārvaldības mehānismiem un rīku izmantošanu aprēķinu aparatūras paātrināšanai.

Par Mojo

Šī jaunā programmēšanas valoda koncentrējas uz izmantošanu mašīnmācības attīstībai, bet jāe tiek pasniegta kā vispārēja nozīme kas paplašina Python valodas iespējas ar sistēmu programmēšanu un ir piemērota plaša spektra uzdevumiem.

Piemēram, valoda ir piemērojama tādās jomās kā augstas veiktspējas skaitļošana, datu apstrāde un datu pārveidošana. Interesanta Mojo funkcija ir iespēja norādīt emocijzīmes simbolu “🔥” kā koda failu paplašinājumu.

Projekts ir izstrādāts, lai iesaistītu aparatūras resursus no sistēmā pieejamajām sistēmām aprēķinos. Piemēram, GPU, specializētus mašīnmācīšanās paātrinātājus un vektoru apstrādes instrukcijas (SIMD) var izmantot, lai palaistu Mojo lietojumprogrammas un paralēli veiktu aprēķinus.

Iemesls atsevišķas Python valodas apakškopas izstrādei, nevis pievienošanās esošajam CPython optimizācijas darbam, tiek minēts kā:

Būvēšanas pieeja, sistēmas programmēšanas iespēju integrācija un principiāli atšķirīgas iekšējās arhitektūras izmantošana, kas ļauj izpildīt kodu uz GPU un dažādiem aparatūras paātrinātājiem. Tajā pašā laikā Mojo izstrādātāji plāno pēc iespējas vairāk pieturēties pie CPython atbalsta.

Mojo var izmantot gan JIT interpretācijas režīmā, gan kompilācijai izpildāmos failos (AOT, pirms laika). Kompilatorā ir iebūvētas modernas tehnoloģijas pašoptimizācijai, kešatmiņai un izplatītai kompilācijai.

Kods pirmkods Mojo valodā tiek pārveidots par zema līmeņa vidēja līmeņa kodu MLIR (Multi-Level Intermediate Representation), kas izstrādāts LLVM projektā un nodrošina papildu funkcijas datu plūsmas grafiku apstrādes optimizēšanai.

Papildu aparatūras mehānismu izmantošana aprēķinu paātrināšanai ļauj sasniegt veiktspēju, kas ar intensīviem aprēķiniem pārspēj C/C++ lietojumprogrammas.

Kriss Lattners ir atbildīgs par daudzu projektu izveidi, uz kuriem mēs visi šodien paļaujamies, lai gan mēs, iespējams, pat neesam dzirdējuši par visu, ko viņš uzbūvēja! Kā daļu no sava doktora disertācijas viņš sāka izstrādāt LLVM, kas būtiski mainīja kompilatoru veidošanas veidu un mūsdienās veido pamatu daudzām pasaulē visplašāk izmantotajām lingvistiskajām ekosistēmām.

Pēc tam viņš izlaida Clang — C un C++ kompilatoru, kas atrodas LLVM virsotnē un ko izmanto lielākā daļa pasaules vadošo programmatūras izstrādātāju (tostarp nodrošinot veiktspējai kritiska koda mugurkaulu). 

Novērtējot veiktspēju mašīnmācīšanās problēmu novēršanas jomā, Modular Inference Engine AI steks, kas rakstīts Mojo valodā, salīdzinot ar risinājumu, kas balstīts uz TensorFlow bibliotēku, tika konstatēts, ka sistēmā ar Intel procesoru ir 3 reizes ātrāks.

Tomēr Kriss redzēja, ka C un C++ neizmanto visas LLVM iespējas, tāpēc, strādājot Apple, viņš izstrādāja jaunu valodu ar nosaukumu "Swift", ko viņš raksturo kā "sintakses cukuru LLVM". 

Ir vērts pieminēt, ka valoda atbalsta statisko rakstīšanu un drošas zema līmeņa atmiņas funkcijas kas atgādina Rust funkcijas, piemēram, atsauces dzīves ilguma izsekošanu un mainīgo aizņēmumu (aizdevuma pārbaudītājs).

Papildus līdzekļiem drošai darbībai ar rādītājiem, valoda nodrošina arī funkcijas zema līmeņa darbam, piemēram, ir iespējams tieši piekļūt atmiņai nedrošajā režīmā, izmantojot rādītāja veidu, izsaukt atsevišķas SIMD instrukcijas vai piekļūt aparatūras paplašinājumiem, piemēram, TensorCores un AMX.

šobrīd, valoda tiek intensīvi attīstīta un tiek piedāvāts tikai interfeiss tiešsaistē, lai mēģinātu. Nākotnē tiek solīts, ka pēc atsauksmes par interaktīvās tīmekļa vides darbu saņemšanas tiks izdotas atsevišķas versijas, kas darbotos vietējās sistēmās.

Kompilatora atvērtā pirmkoda, JIT un citas ar projektu saistītas izstrādes tiek plānotas pēc iekšējās arhitektūras projektēšanas pabeigšanas (slēgto durvju darba prototipa izstrādes modelis atgādina LLVM, Clang un Swift attīstības sākumposmu).

Tā kā Mojo sintakse ir balstīta uz Python un tipu sistēma ir tuvu C/C++, nākotnē ir plānots izstrādāt rīku komplektu, kas atvieglotu esošo C/C++ un Python valodā rakstīto projektu tulkošanu uz Mojo, kā arī kā izstrādāt hibrīdus projektus, kas apvieno Python un Mojo kodu.

Visbeidzot, ja jūs interesē uzzināt vairāk par to, varat iepazīties ar informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   jaime teica

    interesanti, ka šis ir... (bez akcentiem)