Mojo, die neue Programmiersprache von Chris Lattner, dem Erfinder von LLVM

mojo lang

Mojo ist eine neue Programmiersprache, die eine bessere Leistung für die Entwicklung maschinellen Lernens verspricht

Vor ein paar Tagen brachte die Nachricht das Chris Lattner, Gründer und Chefarchitekt von LLVM und Tim Davis, ehemaliger Leiter der KI-Projekte bei Google veröffentlichte „Mojo“, eine neue Programmiersprache, Basierend auf Python, wodurch Python-Implementierungs- und Leistungsprobleme behoben werden.

Es wird erwähnt, dass Mojo dass vereint Benutzerfreundlichkeit für Forschung und Entwicklung und schnelles Prototyping mit Eignung für Hochleistungs-Endprodukte. Ersteres wird durch die Verwendung der bekannten Syntax der Python-Sprache erreicht, und letzteres ist auf die Fähigkeit zur Kompilierung in Maschinencode, Mechanismen zur sicheren Speicherverwaltung und den Einsatz von Tools zur Hardwarebeschleunigung von Berechnungen zurückzuführen.

Über Mojo

Diese neue Programmiersprache Der Schwerpunkt liegt auf der Verwendung für die Entwicklung maschinellen Lernens, aber jae wird als Allzwecksprache präsentiert das die Fähigkeiten der Python-Sprache um die Systemprogrammierung erweitert und für ein breites Aufgabenspektrum geeignet ist.

Die Sprache ist beispielsweise auf Bereiche wie Hochleistungsrechnen, Datenverarbeitung und Datentransformation anwendbar. Eine interessante Funktion von Mojo ist die Möglichkeit, das Emoji-Symbol „🔥“ als Erweiterung für Codedateien anzugeben.

Das Projekt ist darauf ausgelegt, Hardware-Ressourcen einzubeziehen der im System verfügbaren Systeme in die Berechnungen ein. Beispielsweise können GPUs, spezielle Beschleuniger für maschinelles Lernen und Vektorverarbeitungsanweisungen (SIMDs) verwendet werden, um Mojo-Anwendungen auszuführen und Berechnungen zu parallelisieren.

Als Grund für die Entwicklung einer separaten Teilmenge der Python-Sprache, anstatt sich der bestehenden CPython-Optimierungsarbeit anzuschließen, wird Folgendes genannt:

Ein Build-Ansatz, die Integration der Programmierfunktionen des Systems und die Verwendung einer grundlegend anderen internen Architektur, die die Ausführung von Code auf GPUs und verschiedenen Hardwarebeschleunigern ermöglicht. Gleichzeitig wollen die Mojo-Entwickler so weit wie möglich an der CPython-Unterstützung festhalten.

Mojo kann sowohl im JIT-Interpretationsmodus als auch zur Kompilierung in ausführbare Dateien verwendet werden (AOT, vorzeitig). Der Compiler verfügt über integrierte moderne Technologien zur Selbstoptimierung, Caching und verteilten Kompilierung.

Der Code Quellcode in der Mojo-Sprache wird in Low-Level-Zwischencode konvertiert MLIR (Multi-Level Intermediate Representation), entwickelt vom LLVM-Projekt und bietet zusätzliche Funktionen zur Optimierung der Verarbeitung von Datenflussdiagrammen.

Durch den Einsatz zusätzlicher Hardwaremechanismen zur Beschleunigung von Berechnungen können Sie eine Leistung erzielen, die bei intensiven Berechnungen die von C/C++-Anwendungen übertrifft.

Chris Lattner ist für die Erstellung vieler Projekte verantwortlich, auf die wir uns heute alle verlassen, auch wenn wir vielleicht noch nicht einmal von allem gehört haben, was er gebaut hat! Im Rahmen seiner Doktorarbeit begann er mit der Entwicklung von LLVM, das die Art und Weise, wie Compiler gebaut werden, grundlegend veränderte und heute die Grundlage für viele der weltweit am weitesten verbreiteten Sprachökosysteme bildet.

Anschließend veröffentlichte er Clang, einen C- und C++-Compiler, der auf LLVM aufbaut und von den meisten der weltweit führenden Softwareentwickler verwendet wird (einschließlich der Bereitstellung des Rückgrats für leistungskritischen Code). von Google). 

Bei der Bewertung der Leistung im Bereich der Fehlerbehebung beim maschinellen Lernen wurde festgestellt, dass der in der Mojo-Sprache geschriebene Modular Inference Engine AI-Stack im Vergleich zu einer auf der TensorFlow-Bibliothek basierenden Lösung auf einem System mit einem Intel-Prozessor dreimal schneller ist

Chris erkannte jedoch, dass C und C++ die Leistungsfähigkeit von LLVM nicht voll ausnutzten, und entwarf daher während seiner Arbeit bei Apple eine neue Sprache namens „Swift“, die er als „Syntaxzucker für LLVM“ beschreibt. 

Erwähnenswert ist, dass die Die Sprache unterstützt statische Eingabe und sichere Low-Level-Speicherfunktionen die an Rust-Funktionen wie Referenzlebensverfolgung und variable Kreditaufnahme (Kreditprüfer) erinnern.

Neben den Mitteln zum sicheren Betrieb mit Zeigern ist die Sprache bietet auch Funktionen für Arbeiten auf niedriger Ebene, Beispielsweise ist es möglich, im unsicheren Modus über den Zeigertyp direkt auf den Speicher zuzugreifen, einzelne SIMD-Anweisungen aufzurufen oder auf Hardware-Erweiterungen wie TensorCores und AMX zuzugreifen.

Derzeit Sprache befindet sich in intensiver Entwicklung und nur die Schnittstelle wird angeboten Online zum Ausprobieren. Zukünftige Versprechen bestehen darin, separate Builds zu veröffentlichen, die später auf lokalen Systemen ausgeführt werden können, nachdem Feedback zur Arbeit der interaktiven Webumgebung eingegangen ist.

Der Open-Source-Code des Compilers, JIT und andere projektbezogene Entwicklungen werden nach Abschluss des internen Architekturdesigns geplant (das Entwicklungsmodell für einen geschlossenen Arbeitsprototyp ähnelt dem frühen Entwicklungsstadium von LLVM, Clang und Swift).

Da die Syntax von Mojo auf Python basiert und das Typsystem C/C++ ähnelt, ist geplant, in Zukunft eine Reihe von Tools zu entwickeln, um die Übersetzung bestehender, in C/C++ und Python geschriebener Projekte auch nach Mojo zu erleichtern um Hybridprojekte zu entwickeln, die Python- und Mojo-Code kombinieren.

Wenn Sie mehr darüber erfahren möchten, können Sie die Details einsehen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   jaime sagte

    interessant der Steinhaufen das…. (keine Akzente)