Mojo, det nya programmeringsspråket skapat av Chris Lattner, skaparen av LLVM

mojo lang

Mojo är ett nytt programmeringsspråk som lovar bättre prestanda för utveckling av maskininlärning

För några dagar sedan kom nyheten om det Chris Lattner, grundare och chefsarkitekt för LLVM och Tim Davis, tidigare chef för AI-projekt på Google släppte "Mojo", ett nytt programmeringsspråk, baserat på Python, som fixar Python-implementerings- och prestandaproblem.

Det nämns att Mojo que kombinerar användarvänlighet för FoU och snabb prototypframställning med lämplighet för högpresterande slutprodukter. Det förra uppnås genom användningen av Python-språkets välbekanta syntax, och det senare beror på förmågan att kompilera till maskinkod, mekanismer för säker minneshantering och användningen av verktyg för hårdvaruacceleration av beräkningar. .

Om Mojo

Detta nya programmeringsspråk fokuserar på användning för utveckling av maskininlärning, men jae presenteras som ett allmänspråk som utökar kapaciteten hos Python-språket med systemprogrammering och är lämplig för en lång rad uppgifter.

Språket är till exempel tillämpligt på områden som högpresterande datoranvändning, databehandling och datatransformation. En intressant funktion hos Mojo är möjligheten att ange "🔥" emoji-symbolen som en förlängning för kodfiler.

Projektet är utformat för att involvera hårdvaruresurser av de system som finns i systemet i beräkningarna. Till exempel kan GPU:er, specialiserade maskininlärningsacceleratorer och vektorbearbetningsinstruktioner (SIMD) användas för att köra Mojo-applikationer och parallellisera beräkningar.

Anledningen till att utveckla en separat delmängd av Python-språket, snarare än att gå med i befintligt CPython-optimeringsarbete, citeras som:

En byggmetod, integration av systemets programmeringsmöjligheter och användningen av en fundamentalt annorlunda intern arkitektur som gör att kod kan exekveras på GPU:er och olika hårdvaruacceleratorer. Samtidigt tänker Mojo-utvecklarna hålla sig till CPython-stöd så mycket som möjligt.

Mojo kan användas både i JIT-tolkningsläge och för kompilering till körbara filer (AOT, i förväg). Kompilatorn har inbyggd modern teknik för självoptimering, cachelagring och distribuerad kompilering.

Koden källkod på Mojo-språket konverteras till lågnivå mellankod MLIR (Multi-Level Intermediate Representation), utvecklad av LLVM-projektet och tillhandahåller ytterligare funktioner för att optimera behandlingen av dataflödesgrafer.

Användningen av ytterligare hårdvarumekanismer för att påskynda beräkningar gör att du kan uppnå prestanda som, med intensiva beräkningar, överträffar C/C++-applikationer.

Chris lattner är ansvarig för att skapa många av de projekt vi alla litar på idag, även om vi kanske inte ens har hört talas om allt han byggt! Som en del av sin doktorsavhandling påbörjade han utvecklingen av LLVM, som i grunden förändrade sättet som kompilatorer är uppbyggda och som idag utgör grunden för många av världens mest använda språkliga ekosystem.

Han fortsatte sedan med att släppa Clang, en C- och C++-kompilator som sitter ovanpå LLVM och som används av de flesta av världens främsta mjukvaruutvecklare (inklusive att tillhandahålla ryggraden för prestandakritisk kod). från Google). 

Vid utvärdering av prestanda inom området för maskininlärning felsökning visade sig Modular Inference Engine AI-stacken skriven på Mojo-språket, jämfört med en lösning baserad på TensorFlow-biblioteket, vara 3 gånger snabbare på ett system med en Intel-processor

Men Chris såg att C och C++ inte utnyttjade kraften i LLVM fullt ut, så när han arbetade på Apple designade han ett nytt språk, kallat "Swift", som han beskriver som "syntax sugar for LLVM". 

Det är värt att nämna att språket stöder statisk skrivning och säkra minnesfunktioner på låg nivå som påminner om Rust-funktioner som referenslivsspårning och variabel upplåning (lånekontroll).

Förutom medlen för säker drift med pekare, språket ger även funktioner för arbete på låg nivå, till exempel är det möjligt att direkt komma åt minnet i osäkert läge med hjälp av pekartypen, anropa individuella SIMD-instruktioner eller komma åt hårdvarutillägg som TensorCores och AMX.

För närvarande, språket är under intensiv utveckling och endast gränssnittet erbjuds online för att prova. Framtida löften är att släppa separata versioner för att köras på lokala system senare, efter att ha fått feedback om arbetet med den interaktiva webbmiljön.

Den öppna källkoden för kompilatorn, JIT, och annan projektrelaterad utveckling planeras efter att den interna arkitekturdesignen är klar (utvecklingsmodellen för en fungerande prototyp med stängda dörrar liknar det tidiga utvecklingsstadiet av LLVM, Clang och Swift).

Eftersom Mojos syntax är baserad på Python och typsystemet ligger nära C/C++, finns det planer på att i framtiden utveckla en uppsättning verktyg för att göra det lättare att översätta befintliga projekt skrivna i C/C++ och Python till Mojo, liksom som att utveckla hybridprojekt som kombinerar Python- och Mojo-kod.

Slutligen, om du är intresserad av att veta mer om det kan du läsa detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Jaime sade

    intressant röset detta…. (inga accenter)