Mojo, uusi ohjelmointikieli, jonka on luonut LLVM:n luoja Chris Lattner

mojo lang

Mojo on uusi ohjelmointikieli, joka lupaa parempaa suorituskykyä koneoppimisen kehittämiseen

Muutama päivä sitten uutinen kertoi asiasta Chris Lattner, LLVM:n perustaja ja pääarkkitehti Tim Davis, Googlen tekoälyprojektien entinen johtaja julkaisi "Mojo", uuden ohjelmointikielen, perustuu Pythoniin, joka korjaa Pythonin toteutus- ja suorituskykyongelmat.

Mainitaan, että Mojo että yhdistää helppokäyttöisyyden tuotekehitykseen ja nopea prototyyppien valmistus, joka riittää korkean suorituskyvyn lopputuotteisiin. Edellinen saavutetaan käyttämällä Python-kielen tuttua syntaksia, ja jälkimmäinen johtuu kyvystä kääntää konekoodiksi, mekanismeista turvalliseen muistinhallintaan ja työkalujen käytöstä laskelmien laitteistokiihdytykseen.

Tietoja Mojosta

Tämä uusi ohjelmointikieli keskittyy koneoppimisen kehittämiseen, mutta kylläe esitetään yleiskäyttöisenä kielenä joka laajentaa Python-kielen ominaisuuksia järjestelmäohjelmoinnilla ja soveltuu monenlaisiin tehtäviin.

Kieli soveltuu esimerkiksi korkean suorituskyvyn laskemiseen, tietojenkäsittelyyn ja tietojen muuntamiseen. Mielenkiintoinen Mojo-ominaisuus on kyky määrittää “🔥” emoji-symboli kooditiedostojen laajennukseksi.

Projekti on suunniteltu ottamaan mukaan laitteistoresurssit järjestelmässä käytettävissä olevista järjestelmistä laskelmissa. Esimerkiksi GPU:ita, erikoistuneita koneoppimiskiihdyttimiä ja vektorinkäsittelyohjeita (SIMD) voidaan käyttää Mojo-sovellusten ajamiseen ja laskelmien rinnakkaisemiseen.

Syynä Python-kielen erillisen osajoukon kehittämiseen olemassa olevan CPython-optimointityön sijaan mainitaan seuraavasti:

Rakennustapa, järjestelmän ohjelmointiominaisuuksien integrointi ja täysin erilaisen sisäisen arkkitehtuurin käyttö, joka mahdollistaa koodin suorittamisen GPU:illa ja erilaisilla laitteistokiihdyttimillä. Samaan aikaan Mojo-kehittäjät aikovat pitää kiinni CPython-tuesta niin paljon kuin mahdollista.

Mojoa voidaan käyttää sekä JIT-tulkintatilassa että kääntämiseen suoritettaviksi tiedostoiksi (AOT, etuajassa). Kääntäjässä on sisäänrakennetut modernit tekniikat itseoptimointiin, välimuistiin ja hajautettuun kääntämiseen.

Koodi Mojo-kielinen lähdekoodi muunnetaan matalan tason keskitason koodiksi MLIR (Multi-Level Intermediate Representation), jonka LLVM-projekti on kehittänyt ja joka tarjoaa lisätoimintoja tietovirtakaavioiden käsittelyn optimoimiseksi.

Lisälaitteistomekanismien käyttö laskennan nopeuttamiseksi mahdollistaa suorituskyvyn, joka intensiivisellä laskennalla ylittää C/C++-sovellukset.

Chris lattner on vastuussa monista projekteista, joihin me kaikki luotamme nykyään, vaikka emme ehkä ole edes kuulleet kaikesta, mitä hän rakensi! Osana väitöskirjaansa hän aloitti LLVM:n kehittämisen, joka muutti perusteellisesti kääntäjien rakennetta ja muodostaa nykyään perustan monille maailman laajimmin käytetyille kielellisille ekosysteemeille.

Sitten hän julkaisi Clangin, C- ja C++-kääntäjän, joka sijaitsee LLVM:n päällä ja jota useimmat maailman parhaat ohjelmistokehittäjät käyttävät (mukaan lukien Googlen suorituskykykriittisen koodin selkäranka). 

Arvioitaessa suorituskykyä koneoppimisen vianmäärityksen alalla Mojo-kielellä kirjoitettu Modular Inference Engine AI-pino, verrattuna TensorFlow-kirjastoon perustuvaan ratkaisuun, havaittiin 3 kertaa nopeammaksi Intel-prosessorilla varustetussa järjestelmässä.

Chris kuitenkin huomasi, että C ja C++ eivät käyttäneet täysimääräisesti LLVM:n tehoa, joten työskennellessään Applella hän suunnitteli uuden kielen, nimeltä "Swift", jota hän kuvailee "syntaksisokeriksi LLVM:lle". 

On syytä mainita, että kieli tukee staattista kirjoittamista ja turvallisia matalan tason muistiominaisuuksia jotka muistuttavat Rust-ominaisuuksia, kuten viite-elämän seuranta ja muuttuva lainaus (lainan tarkistus).

Turvallisen osoittimien käytön keinojen lisäksi kieli tarjoaa myös ominaisuuksia matalan tason työhön, On esimerkiksi mahdollista päästä suoraan muistiin vaarallisessa tilassa osoitintyypin avulla, soittaa yksittäisiä SIMD-ohjeita tai käyttää laitteistolaajennuksia, kuten TensorCores ja AMX.

tällä hetkellä, kieli on intensiivisen kehityksen alla ja vain käyttöliittymä tarjotaan verkossa kokeiltavaksi. Tulevaisuudessa luvataan julkaista erilliset koontiversiot toimimaan paikallisissa järjestelmissä myöhemmin saatuaan palautetta interaktiivisen verkkoympäristön toiminnasta.

Kääntäjän avoimen lähdekoodin, JIT:n ja muun projekteihin liittyvän kehityksen suunnittelu suunnitellaan sisäisen arkkitehtuurin suunnittelun valmistumisen jälkeen (suljetun ovisen toimivan prototyypin kehitysmalli muistuttaa LLVM:n, Clangin ja Swiftin varhaista kehitysvaihetta).

Koska Mojon syntaksi perustuu Pythoniin ja tyyppijärjestelmä on lähellä C/C++:aa, on tulevaisuudessa tarkoitus kehittää työkalusarja, joka helpottaa C/C++:lla ja Pythonilla kirjoitettujen projektien kääntämistä Mojoksi. kehittää hybridiprojekteja, joissa yhdistetään Python- ja Mojo-koodi.

Lopuksi, jos haluat tietää enemmän siitä, voit tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Jaime dijo

    mielenkiintoista tämä ketju.... (ei aksentteja)