Mojo, el nou llenguatge de programació creat per Chris Lattner el creador de LLVM

Mojo lang

Mojo és un llenguatge de programació nou que promet un millor rendiment per al desenvolupament d'aprenentatge automàtic

Fa pocs dies es va donar a conèixer la notícia que Chris Lattner, fundador i arquitecte en cap de LLVM i Tim Davis, excap de projectes de IA de Google van llançar «Mojo», un nou llenguatge de programació, basat en Python, que soluciona els problemes dimplementació i rendiment de Python.

S'esmenta que Mojo que combina la facilitat d'ús per a R+D i la creació ràpida de prototips amb idoneïtat per a productes finals d'alt rendiment. El primer s'aconsegueix mitjançant l'ús de la sintaxi familiar del llenguatge Python, i el segon és degut a la capacitat de compilar en codi de màquina, mecanismes per a la gestió segura de la memòria i l'ús d'eines per a l'acceleració de càlculs per maquinari .

Sobre Mojo

Aquest nou llenguatge de programació se centra en lús per al desenvolupament daprenentatge automàtic, però si presenta com un llenguatge de propòsit general que amplia les capacitats del llenguatge Python amb la programació de sistemes i és adequat per a una àmplia gamma de tasques.

Per exemple, el llenguatge és aplicable a àrees com ara la informàtica d'alt rendiment, el processament i la transformació de dades. Una característica interessant de Mojo és la capacitat d'especificar el símbol emoji «🔥» com a extensió per a fitxers de codi.

El projecte està dissenyat per involucrar els recursos de maquinari dels sistemes disponibles al sistema en els càlculs. Per exemple, es poden fer servir GPU, acceleradors d'aprenentatge automàtic especialitzats i instruccions de processament de vectors (SIMD) per executar aplicacions Mojo i paral·lelitzar càlculs.

La raó per desenvolupar un subconjunt separat del llenguatge Python, en lloc d'unir-se al treball d'optimització del CPython existent, es cita com a:

Un enfocament de compilació, integració de les capacitats de programació del sistema i lús duna arquitectura interna fonamentalment diferent que permet que el codi sigui executat en GPU i diversos acceleradors de maquinari. Alhora, els desenvolupadors de Mojo tenen la intenció d'adherir-se a la compatibilitat amb CPython tant com sigui possible.

Mojo es pot utilitzar tant en el mode d'interpretació JIT com per a la compilació en fitxers executables (AOT, abans d'hora). El compilador té tecnologies modernes incorporades per a l'optimització automàtica, l'emmagatzematge en memòria cau i la compilació distribuïda.

el codi font en el llenguatge Mojo es converteixen en codi intermedi de baix nivell MLIR (Multi-Level Intermediate Representation), desenvolupat pel projecte LLVM i que proporciona funcions addicionals per optimitzar el processament de gràfics de flux de dades.

L'ús de mecanismes de maquinari addicionals per accelerar els càlculs permet assolir un rendiment que, amb càlculs intensius, supera les aplicacions C/C++.

Chris lattner és responsable de crear molts dels projectes en què tots confiem avui, encara que és possible que ni tan sols haguem sentit a parlar de tot el que va construir! Com a part de la seva tesi doctoral, va començar el desenvolupament de LLVM, que va canviar fonamentalment la manera com es creen els compiladors i, actualment, constitueix la base de molts dels ecosistemes lingüístics més utilitzats al món.

Després va passar a llançar Clang, un compilador de C i C++ que es troba a la part superior de LLVM i és utilitzat per la majoria dels desenvolupadors de programari més importants del món (inclòs el subministrament de la columna vertebral per al codi crític de rendiment de Google). 

En avaluar l'exercici en el camp de la resolució de problemes d'aprenentatge automàtic, la pila Modular Inference Engine AI escrita en el llenguatge Mojo, en comparació amb una solució basada a la biblioteca TensorFlow, va resultar ser 3 vegades més ràpida en un sistema amb un processador Intel

No obstant això, Chris va veure que C i C++ no aprofitaven completament el poder de LLVM, per la qual cosa mentre treballava a Apple va dissenyar un nou llenguatge, anomenat «Swift», que descriu com a «sucre de sintaxi per a LLVM». 

Cal esmentar que el llenguatge és compatible amb l'escriptura estàtica i les funcions segures de memòria de baix nivell que recorden les funcions de Rust, com el seguiment de la vida útil de referència i el préstec de variables (verificador de préstecs).

A més dels mitjans per a una operació segura amb punters, el llenguatge també proporciona característiques per al treball de baix nivell, per exemple, és possible accedir directament a la memòria en mode no segur utilitzant el tipus de punter, trucar a instruccions SIMD individuals o accedir a extensions de maquinari com TensorCores i AMX.

Actualment, el llenguatge està sota un desenvolupament intensiu i només s'ofereix la interfície en línia per provar. A futur es promet publicar compilacions separades per executar en sistemes locals més endavant després de rebre comentaris sobre el treball de l'entorn web interactiu.

Està previst obrir el codi font del compilador, JIT i altres desenvolupaments relacionats amb el projecte després que es completi el disseny de l'arquitectura interna (el model de desenvolupament d'un prototip de treball a porta tancada s'assembla a l'etapa inicial de desenvolupament de LLVM, Clang i Swift).

Atès que la sintaxi de Mojo es basa en Python i el sistema de tipus és a prop de C/C++, hi ha plans en el futur per desenvolupar un conjunt d'eines per facilitar la traducció de projectes existents escrits a C/C++ i Python a Mojo, així com per desenvolupar projectes híbrids que combinen codi Python i Mojo.

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   jaime va dir

    interessant la fita est…. (sense accents)