Mojo, det nye programmeringsspråket laget av Chris Lattner, skaperen av LLVM

mojo lang

Mojo er et nytt programmeringsspråk som lover bedre ytelse for utvikling av maskinlæring

For noen dager siden kom nyheten om det Chris Lattner, grunnlegger og sjefsarkitekt for LLVM og Tim Davis, tidligere leder for AI-prosjekter hos Google ga ut "Mojo", et nytt programmeringsspråk, basert på Python, som fikser Python-implementering og ytelsesproblemer.

Det nevnes at Mojo que kombinerer brukervennlighet for FoU og rask prototyping som er tilstrekkelig for sluttprodukter med høy ytelse. Førstnevnte oppnås ved bruk av den kjente syntaksen til Python-språket, og sistnevnte skyldes evnen til å kompilere til maskinkode, mekanismer for sikker minnehåndtering og bruk av verktøy for maskinvareakselerasjon av beregninger. .

Om Mojo

Dette nye programmeringsspråket fokuserer på bruk for utvikling av maskinlæring, men jae presentert som et generelt språk som utvider funksjonene til Python-språket med systemprogrammering og er egnet for et bredt spekter av oppgaver.

For eksempel kan språket brukes på områder som høyytelses databehandling, databehandling og datatransformasjon. En interessant funksjon ved Mojo er muligheten til å spesifisere "🔥" emoji-symbolet som en utvidelse for kodefiler.

Prosjektet er designet for å involvere maskinvareressurser av systemene som er tilgjengelige i systemet i beregningene. For eksempel kan GPUer, spesialiserte maskinlæringsakseleratorer og vektorbehandlingsinstruksjoner (SIMD-er) brukes til å kjøre Mojo-applikasjoner og parallellisere beregninger.

Årsaken til å utvikle et eget undersett av Python-språket, i stedet for å bli med i eksisterende CPython-optimaliseringsarbeid, er sitert som:

En byggetilnærming, integrasjon av systemets programmeringsevner og bruk av en fundamentalt forskjellig intern arkitektur som gjør at kode kan kjøres på GPUer og ulike maskinvareakseleratorer. Samtidig har Mojo-utviklerne til hensikt å holde seg til CPython-støtte så mye som mulig.

Mojo kan brukes både i JIT-tolkningsmodus og for kompilering til kjørbare filer (AOT, på forhånd). Kompilatoren har innebygd moderne teknologi for selvoptimalisering, caching og distribuert kompilering.

Koden kildekoden på Mojo-språket konverteres til lav-nivå mellomkode MLIR (Multi-Level Intermediate Representation), utviklet av LLVM-prosjektet og gir tilleggsfunksjoner for å optimalisere behandlingen av dataflytgrafer.

Bruken av ekstra maskinvaremekanismer for å øke hastigheten på beregningene lar deg oppnå ytelse som, med intensive beregninger, overgår C/C++-applikasjoner.

Chris lattner er ansvarlig for å lage mange av prosjektene vi alle er avhengige av i dag, selv om vi kanskje ikke engang har hørt om alt han bygde! Som en del av doktorgradsavhandlingen startet han utviklingen av LLVM, som fundamentalt endret måten kompilatorer bygges på og som i dag danner grunnlaget for mange av verdens mest brukte språklige økosystemer.

Deretter lanserte han Clang, en C- og C++-kompilator som sitter på toppen av LLVM og brukes av de fleste av verdens beste programvareutviklere (inkludert å gi ryggraden for ytelseskritisk kode). fra Google). 

Ved evaluering av ytelse innen feilsøking av maskinlæring, ble Modular Inference Engine AI-stakken skrevet på Mojo-språket, sammenlignet med en løsning basert på TensorFlow-biblioteket, funnet å være 3 ganger raskere på et system med en Intel-prosessor

Chris så imidlertid at C og C++ ikke utnyttet kraften til LLVM fullt ut, så mens han jobbet hos Apple designet han et nytt språk, kalt "Swift", som han beskriver som "syntax sugar for LLVM". 

Det er verdt å nevne at språk støtter statisk skriving og sikre funksjoner for lavt minne som minner om Rust-funksjoner som referanselivssporing og variabelt lån (lånsjekker).

I tillegg til midlene for sikker drift med pekere, språket gir også funksjoner for arbeid på lavt nivå, for eksempel er det mulig å få direkte tilgang til minnet i usikker modus ved å bruke pekertypen, ringe individuelle SIMD-instruksjoner eller få tilgang til maskinvareutvidelser som TensorCores og AMX.

Tiden, språk er under intensiv utvikling og bare grensesnittet tilbys online for å prøve. Fremtidige løfter er å gi ut separate builds for å kjøre på lokale systemer senere, etter å ha mottatt tilbakemelding på arbeidet med det interaktive webmiljøet.

Den åpne kildekoden til kompilatoren, JIT, og annen prosjektrelatert utvikling planlegges etter at den interne arkitekturdesignen er fullført (utviklingsmodellen for en lukket-dørs arbeidsprototype ligner det tidlige utviklingsstadiet av LLVM, Clang og Swift).

Siden Mojos syntaks er basert på Python og typesystemet er nær C/C++, er det planer i fremtiden om å utvikle et sett med verktøy for å gjøre det lettere å oversette eksisterende prosjekter skrevet i C/C++ og Python til Mojo, også som å utvikle hybridprosjekter som kombinerer Python- og Mojo-kode.

Til slutt, hvis du er interessert i å vite mer om det, kan du se detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Jaime sa

    interessant varden dette…. (ingen aksenter)