Mojo, uus programmeerimiskeel, mille lõi LLVM-i looja Chris Lattner

mojo lang

Mojo on uus programmeerimiskeel, mis lubab masinõppe arendamiseks paremat jõudlust

Mõni päev tagasi levis see uudis Chris Lattner, LLVM-i asutaja ja peaarhitekt ning Tim Davis, endine Google'i AI projektide juht andis välja uue programmeerimiskeele "Mojo", põhineb Pythonil, mis parandab Pythoni juurutamise ja jõudluse probleemid.

Mainitakse, et Mojo et ühendab endas uurimis- ja arendustegevuse kasutusmugavuse ja kiire prototüüpimine, mis on piisav suure jõudlusega lõpptoodete jaoks. Esimene saavutatakse Pythoni keele tuttava süntaksi kasutamisega ja viimane on tingitud masinkoodiks kompileerimise võimalusest, turvalise mäluhalduse mehhanismidest ja arvutuste riistvaralise kiirendamise tööriistade kasutamisest.

Mojo kohta

See uus programmeerimiskeel keskendub kasutamisele masinõppe arendamiseks, aga jahe esitatakse üldotstarbelise keelena mis laiendab Pythoni keele võimalusi süsteemide programmeerimisega ja sobib väga paljude ülesannete täitmiseks.

Näiteks on see keel rakendatav sellistes valdkondades nagu suure jõudlusega andmetöötlus, andmetöötlus ja andmete teisendamine. Mojo huvitav funktsioon on võimalus määrata koodifailide laiendusena emotikonide sümbol “🔥”.

Projekt on kavandatud riistvararessursside kaasamiseks süsteemis olemasolevatest süsteemidest arvutustes. Näiteks saab Mojo rakenduste käitamiseks ja arvutuste paralleelseks muutmiseks kasutada GPU-sid, spetsiaalseid masinõppekiirendeid ja vektortöötlusjuhiseid (SIMD).

Põhjuseks Pythoni keele eraldi alamhulga väljatöötamiseks, selle asemel et liituda olemasoleva CPythoni optimeerimistööga, viidatakse järgmiselt:

Ehitamise lähenemine, süsteemi programmeerimisvõimaluste integreerimine ja põhimõtteliselt erineva sisemise arhitektuuri kasutamine, mis võimaldab GPU-del ja erinevatel riistvarakiirenditel koodi käivitada. Samal ajal kavatsevad Mojo arendajad CPythoni toe juurde jääda nii palju kui võimalik.

Mojo saab kasutada nii JIT-tõlgendusrežiimis kui ka täitmisfailideks kompileerimiseks (AOT, enne tähtaega). Kompilaatoril on sisseehitatud kaasaegsed tehnoloogiad eneseoptimeerimiseks, vahemällu salvestamiseks ja hajutatud kompileerimiseks.

Kood Mojo keele lähtekood teisendatakse madala taseme keskmiseks koodiks MLIR (Multi-Level Intermediate Representation), mille on välja töötanud LLVM projekt ja mis pakub lisafunktsioone andmevoograafikute töötlemise optimeerimiseks.

Täiendavate riistvaramehhanismide kasutamine arvutuste kiirendamiseks võimaldab teil saavutada jõudlust, mis intensiivsete arvutustega ületab C/C++ rakendusi.

Chris lattner vastutab paljude projektide loomise eest, millele me kõik täna tugineme, kuigi me pole võib-olla isegi kuulnud kõigest, mida ta ehitas! Osana oma doktoritööst alustas ta LLVM-i väljatöötamist, mis muutis põhjalikult kompilaatorite ülesehitust ja on tänapäeval paljude maailma enimkasutatavate keeleökosüsteemide aluseks.

Seejärel andis ta välja Clangi, C- ja C++-kompilaatori, mis asub LLVM-i peal ja mida kasutab enamik maailma tipptarkvaraarendajaid (sealhulgas Google'i jõudluskriitilise koodi selgroog). 

Masinõppe tõrkeotsingu valdkonna jõudluse hindamisel leiti, et Mojo keeles kirjutatud Modular Inference Engine AI pinu, võrreldes TensorFlow teegil põhineva lahendusega, on Inteli protsessoriga süsteemis 3 korda kiirem.

Chris aga nägi, et C ja C++ ei kasuta LLVM-i võimsust täielikult ära, nii et Apple'is töötades kujundas ta uue keele nimega "Swift", mida ta kirjeldab kui "LLVM-i süntaksisuhkrut". 

Väärib märkimist, et keel toetab staatilist tippimist ja turvalisi madala taseme mälufunktsioone mis meenutavad Rusti funktsioone, nagu võrdluse eluea jälgimine ja muutujalaenu võtmine (laenu kontrollija).

Lisaks osutitega ohutu töötamise vahenditele keel pakub ka funktsioone madala tasemega tööks, Näiteks on võimalik ebaturvalises režiimis otse mälule juurde pääseda, kasutades kursori tüüpi, helistada üksikutele SIMD-juhistele või pääseda juurde riistvaralaiendustele, nagu TensorCores ja AMX.

Praegu keel on intensiivse arengu all ja pakutakse ainult liidest Internetis proovimiseks. Tulevikulubadused on pärast interaktiivse veebikeskkonna töö kohta tagasiside saamist hiljem kohalikes süsteemides töötamiseks välja anda eraldi buildid.

Kompilaatori avatud lähtekoodi, JIT ja muu projektiga seotud arendus on planeeritud pärast sisearhitektuuri disaini valmimist (suletud ustega töötava prototüübi arendusmudel meenutab LLVM-i, Clangi ja Swifti varajast arenguetappi).

Kuna Mojo süntaks põhineb Pythonil ja tüübisüsteem on C/C++-le lähedane, on tulevikus plaanis välja töötada tööriistade komplekt, mis lihtsustaks olemasolevate C/C++ ja Pythonis kirjutatud projektide tõlkimist Mojo keelde. et arendada hübriidprojekte, mis ühendavad Pythoni ja Mojo koodi.

Lõpuks, kui olete huvitatud sellest rohkem teada saama, saate üksikasju vaadata Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   jaime DIJO

    huvitav see värk…. (ilma aktsentideta)