Mojo, de nieuwe programmeertaal gemaakt door Chris Lattner, de maker van LLVM

mojo lang

Mojo is een nieuwe programmeertaal die betere prestaties belooft voor de ontwikkeling van machine learning

Een paar dagen geleden brak het nieuws dat Chris Latner, oprichter en hoofdarchitect van LLVM en Tim Davis, voormalig hoofd AI-projecten bij Google vrijgegeven "Mojo", een nieuwe programmeertaal, gebaseerd op Python, waarmee implementatie- en prestatieproblemen van Python worden opgelost.

Er wordt vermeld dat Mojo dat combineert gebruiksgemak voor R&D en rapid prototyping met geschiktheid voor hoogwaardige eindproducten. Het eerste wordt bereikt door het gebruik van de bekende syntaxis van de Python-taal, en het laatste is te danken aan de mogelijkheid om te compileren naar machinecode, mechanismen voor veilig geheugenbeheer en het gebruik van tools voor hardwareversnelling van berekeningen.

Over Mojo

Deze nieuwe programmeertaal richt zich op gebruik voor de ontwikkeling van machine learning, maar jae gepresenteerd als een algemene taal die de mogelijkheden van de Python-taal uitbreidt met systeemprogrammering en geschikt is voor een breed scala aan taken.

De taal is bijvoorbeeld toepasbaar op gebieden als high-performance computing, gegevensverwerking en gegevenstransformatie. Een interessant kenmerk van Mojo is de mogelijkheid om het "🔥" emoji-symbool te specificeren als een extensie voor codebestanden.

Het project is ontworpen om hardwarebronnen te betrekken van de beschikbare systemen in het systeem in de berekeningen. GPU's, gespecialiseerde machine learning-versnellers en vectorverwerkingsinstructies (SIMD's) kunnen bijvoorbeeld worden gebruikt om Mojo-applicaties uit te voeren en berekeningen te parallelliseren.

De reden voor het ontwikkelen van een aparte subset van de Python-taal, in plaats van deel te nemen aan bestaand CPython-optimalisatiewerk, wordt genoemd als:

Een build-benadering, integratie van de programmeermogelijkheden van het systeem en het gebruik van een fundamenteel andere interne architectuur waarmee code kan worden uitgevoerd op GPU's en verschillende hardwareversnellers. Tegelijkertijd zijn de Mojo-ontwikkelaars van plan om zoveel mogelijk vast te houden aan CPython-ondersteuning.

Mojo kan zowel in JIT-interpretatiemodus als voor compilatie in uitvoerbare bestanden worden gebruikt (AOT, van tevoren). De compiler heeft ingebouwde moderne technologieën voor zelfoptimalisatie, caching en gedistribueerde compilatie.

De code broncode in de Mojo-taal worden geconverteerd naar tussenliggende code op laag niveau MLIR (Multi-Level Intermediate Representation), ontwikkeld door het LLVM-project en biedt extra functies om de verwerking van gegevensstroomgrafieken te optimaliseren.

Het gebruik van aanvullende hardwaremechanismen om berekeningen te versnellen stelt u in staat om prestaties te bereiken die, met intensieve berekeningen, beter presteren dan C/C++-toepassingen.

Chris Lattner is verantwoordelijk voor het maken van veel van de projecten waar we tegenwoordig allemaal op vertrouwen, ook al hebben we misschien niet eens gehoord van alles wat hij heeft gebouwd! Als onderdeel van zijn proefschrift begon hij met de ontwikkeling van LLVM, dat de manier waarop compilers worden gebouwd fundamenteel veranderde en tegenwoordig de basis vormt van veel van 's werelds meest gebruikte taalecosystemen.

Vervolgens bracht hij Clang uit, een C- en C++-compiler die bovenop LLVM zit en wordt gebruikt door de meeste van 's werelds beste softwareontwikkelaars (waaronder de ruggengraat voor prestatiekritische code) van Google). 

Bij het evalueren van de prestaties op het gebied van probleemoplossing voor machine learning, bleek de Modular Inference Engine AI-stack geschreven in de Mojo-taal, vergeleken met een oplossing op basis van de TensorFlow-bibliotheek, 3 keer sneller te zijn op een systeem met een Intel-processor

Chris zag echter dat C en C++ niet ten volle profiteerden van de kracht van LLVM, dus ontwierp hij tijdens zijn werk bij Apple een nieuwe taal, "Swift" genaamd, die hij omschrijft als "syntax sugar for LLVM". 

Het is vermeldenswaard dat de taal ondersteunt statisch typen en veilige low-level geheugenfuncties die doen denken aan Rust-functies zoals het bijhouden van de referentielevensduur en variabel lenen (leningcontrole).

Naast de middelen voor veilige bediening met wijzers, de taal biedt ook functies voor werk op laag niveau, het is bijvoorbeeld mogelijk om direct toegang te krijgen tot geheugen in onveilige modus met behulp van het pointertype, individuele SIMD-instructies aan te roepen of toegang te krijgen tot hardware-uitbreidingen zoals TensorCores en AMX.

nog, taal is volop in ontwikkeling en alleen de interface wordt aangeboden online om te proberen. Toekomstige beloften zijn om afzonderlijke builds uit te brengen om later op lokale systemen te draaien, na feedback over het werk van de interactieve webomgeving.

De open source-code van de compiler, JIT en andere projectgerelateerde ontwikkeling wordt gepland nadat het ontwerp van de interne architectuur is voltooid (het ontwikkelingsmodel voor een werkend prototype met gesloten deur lijkt op de vroege ontwikkelingsfase van LLVM, Clang en Swift).

Aangezien de syntaxis van Mojo is gebaseerd op Python en het typesysteem dicht bij C/C++ ligt, zijn er plannen om in de toekomst een set tools te ontwikkelen om het gemakkelijker te maken om bestaande projecten geschreven in C/C++ en Python ook naar Mojo te vertalen. om hybride projecten te ontwikkelen die Python- en Mojo-code combineren.

Ten slotte, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   jaime zei

    interessant de cairn dit…. (geen accenten)