Mojo, det nye programmeringssprog skabt af Chris Lattner, skaberen af ​​LLVM

mojo lang

Mojo er et nyt programmeringssprog, der lover bedre ydeevne til udvikling af maskinlæring

For et par dage siden brød nyheden om det Chris Lattner, grundlægger og chefarkitekt af LLVM og Tim Davis, tidligere leder af AI-projekter hos Google udgav "Mojo", et nyt programmeringssprog, baseret på Python, som løser Python-implementering og ydeevneproblemer.

Det nævnes, at Mojo at kombinerer brugervenlighed til R&D og hurtig prototyping med tilstrækkelighed til højtydende slutprodukter. Førstnævnte opnås ved brug af den velkendte syntaks fra Python-sproget, og sidstnævnte skyldes evnen til at kompilere til maskinkode, mekanismer til sikker hukommelseshåndtering og brugen af ​​værktøjer til hardwareacceleration af beregninger. .

Om Mojo

Dette nye programmeringssprog fokuserer på brug til udvikling af maskinlæring, Men jae præsenteret som et generelt sprog som udvider Python-sprogets muligheder med systemprogrammering og er velegnet til en lang række opgaver.

For eksempel er sproget anvendeligt til områder som højtydende computing, databehandling og datatransformation. En interessant funktion ved Mojo er evnen til at angive "🔥" emoji-symbolet som en udvidelse til kodefiler.

Projektet er designet til at involvere hardwareressourcer af de systemer, der findes i systemet i beregningerne. For eksempel kan GPU'er, specialiserede maskinlæringsacceleratorer og vektorbehandlingsinstruktioner (SIMD'er) bruges til at køre Mojo-applikationer og parallelisere beregninger.

Årsagen til at udvikle en separat delmængde af Python-sproget, i stedet for at slutte sig til eksisterende CPython-optimeringsarbejde, er nævnt som:

En build-tilgang, integration af systemets programmeringsmuligheder og brugen af ​​en fundamentalt anderledes intern arkitektur, der gør det muligt at udføre kode på GPU'er og forskellige hardwareacceleratorer. Samtidig har Mojo-udviklerne til hensigt at holde sig til CPython-understøttelse så meget som muligt.

Mojo kan bruges både i JIT-fortolkningstilstand og til kompilering til eksekverbare filer (AOT, før tid). Compileren har indbygget moderne teknologier til selvoptimering, caching og distribueret kompilering.

Koden kildekode på Mojo-sproget konverteres til lav-niveau mellemkode MLIR (Multi-Level Intermediate Representation), udviklet af LLVM-projektet og giver yderligere funktioner til at optimere behandlingen af ​​dataflowgrafer.

Brugen af ​​yderligere hardwaremekanismer til at fremskynde beregningerne giver dig mulighed for at opnå ydeevne, der med intensive beregninger overgår C/C++-applikationer.

Chris lattner er ansvarlig for at skabe mange af de projekter, vi alle er afhængige af i dag, selvom vi måske ikke engang har hørt om alt, hvad han byggede! Som en del af sin ph.d.-afhandling påbegyndte han udviklingen af ​​LLVM, som fundamentalt ændrede den måde, compilere er bygget op og i dag danner grundlaget for mange af verdens mest udbredte sproglige økosystemer.

Han fortsatte derefter med at udgive Clang, en C- og C++-compiler, der sidder oven på LLVM og bruges af de fleste af verdens førende softwareudviklere (inklusive at levere rygraden til ydeevnekritisk kode). fra Google). 

Ved evaluering af ydeevne inden for maskinlæringsfejlfinding blev Modular Inference Engine AI-stakken skrevet på Mojo-sproget, sammenlignet med en løsning baseret på TensorFlow-biblioteket, fundet at være 3 gange hurtigere på et system med en intel-processor

Chris så dog, at C og C++ ikke udnyttede kraften i LLVM fuldt ud, så mens han arbejdede hos Apple, designede han et nyt sprog, kaldet "Swift", som han beskriver som "syntax sugar for LLVM". 

Det er værd at nævne at sprog understøtter statisk skrivning og sikre hukommelsesfunktioner på lavt niveau som minder om Rust-funktioner som referencelivssporing og variabelt lån (lånekontrol).

Ud over midlerne til sikker drift med pointere, sproget giver også funktioner til arbejde på lavt niveau, for eksempel er det muligt at få direkte adgang til hukommelsen i usikker tilstand ved hjælp af pointertypen, kalde individuelle SIMD-instruktioner eller få adgang til hardwareudvidelser såsom TensorCores og AMX.

Currently, sproget er under intensiv udvikling og kun grænsefladen tilbydes online for at prøve. Fremtidige løfter er at frigive separate builds til at køre på lokale systemer senere, efter at have modtaget feedback om arbejdet i det interaktive webmiljø.

Den åbne kildekode for compileren, JIT og anden projektrelateret udvikling er planlagt, efter at det interne arkitekturdesign er færdigt (udviklingsmodellen for en lukket-dørs arbejdsprototype ligner det tidlige udviklingsstadium af LLVM, Clang og Swift).

Da Mojos syntaks er baseret på Python og typesystemet er tæt på C/C++, er der planer om i fremtiden at udvikle et sæt værktøjer, der gør det nemmere at oversætte eksisterende projekter skrevet i C/C++ og Python til Mojo. som at udvikle hybride projekter, der kombinerer Python- og Mojo-kode.

Endelig, hvis du er interesseret i at vide mere om det, kan du se detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   jaime sagde han

    interessant varden det her…. (ingen accenter)