Lese-Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.

Mojo: LLVM-Gründer will Python für KI-Anwendung aufbohren

Chris Lattner hat LLVM begründet und Swift erfunden. Die Sprache Mojo soll Vorteile von Python und C vereinen.

Die neue Programmiersprache Mojo soll allen KI-Programmierern eine Heimat bieten und dabei die Einfachheit von Python mit der Geschwindigkeit von C kombinieren. Das zumindest verspricht das KI-Startup Modular, das von LLVM-Gründer Chris Lattner mitbegründet worden ist und von diesem derzeit als CEO geführt wird.

Mojo baut dabei direkt auf Python auf, das als Grundlage der aktuellen KI-Forschung gilt und für zahlreiche Frameworks wie etwa Tensorflow oder Pytorch genutzt wird. Die neue Sprache soll offenbar eine Art Übermenge für Python selbst sein und den Zugriff auf das komplette Python-Ökosystem bieten. Modular zählt hier vor allem die für Berechnungen wichtigen Bibliotheken Numpy und Pandas auf.

Erreicht werden sollen die Geschwindigkeitsverbesserungen von Mojo vor allem dank einer Laufzeitumgebung, die Modular selbst erstellt, sowie der Compilertechnik MLIR. Bei dieser handelt es sich um eine neue Art der Intermediate Representation (IR), die Lattner selbst gemeinsam mit weiteren Forscher bereits vor mehr als drei Jahren vorstellte.

Statt diese Art der Compiler-Zwischenschicht je Sprache selbst zu erstellen oder auch für bestimmte Hardware zu optimieren, soll MLIR durch einen Mehrschichtansatz (Multi-Level) eben verschiedene Probleme lösen, diese aber letztlich in einem Projekt zusammenführen.

Für Mojo ergebe sich dank MLIR ein Zugriff auf die Beschleunigereinheiten von KI-Hardware. So sollen Threads ebenso genutzt werden können wie Low-Level-Funktionen, etwa Tensor-Cores oder die AMX-Erweiterungen. Bei spezifischen numerischen Berechnungen soll Mojo so bis zu 35.000-fach schneller sein als Python und damit auch schneller als üblicher C++-Code.

Noch befinde sich Mojo in der Entwicklung. Modular bietet aber eine Art Spielwiese auf Grundlage von Jupyter-Hub, um die Sprache bereits auszuprobieren. Dazu ist allerdings noch eine Anmeldung notwendig.

Der Beitrag Mojo: LLVM-Gründer will Python für KI-Anwendung aufbohren erschien zuerst auf Linux-Magazin.

Python-Compiler verspricht 10- bis 100-fache Leistung

Eine native Kompilierung von Python soll eine Programmgeschwindigkeit wie bei C und C++ ermöglichen.

Die Programmiersprache Python gilt zwar als vergleichsweise einfach zu erlernen und wird auch deshalb viel verwendet, die Nutzung des Interpreters in der Standardimplementierung hat aber Nachteile bei der Geschwindigkeit. Mit dem Codon-Projekt versucht ein Team des MIT (Massachusetts Institute of Technology) einen nativen Compiler für Python zu erstellen, um die Sprache deutlich zu beschleunigen.

In der Ankündigung des MIT sagt der Hauptautor von Codon zu der Umsetzung: “Der Benutzer schreibt einfach Python, so wie er es gewohnt ist, ohne sich um Datentypen oder Leistung kümmern zu müssen, was wir automatisch erledigen – und das Ergebnis ist, dass sein Code 10 bis 100 Mal schneller läuft als normales Python. Codon wird bereits kommerziell in Bereichen wie quantitative Finanzen, Bioinformatik und Deep Learning eingesetzt.”

Der neue Python-Compiler Codon basiere auf der LLVM-Compiler-Infrastruktur, biete natives Multithreading und die Geschwindigkeit damit erzeugter Programme reiche gar an C oder C++ heran, schreiben die Beteiligten auf Github. Das Multithreading und die Nebenläufigkeit werden in der Standardimplementierung von Python derzeit effektiv vom sogenannten Global Interpreter Lock (GIL) verhindert, der aber entfernt werden soll.

In einem Vortrag beschreibt das Team Codon als “einen domänenerweiterbaren Compiler und DSL-Framework (Domain Specific Language) für leistungsstarke DSLs mit der Syntax und Semantik von Python.” Neu sei dabei vor allem eine Intermediate Representation die Optimierungen und Analysen erleichtere.

Zwar unterstützte Codon fast die gesamte Python-Syntax, ein kompletter Ersatz für die Standardimplementierung sei das Projekt aber nicht, heißt es. So werden einige Python-Module noch nicht unterstützt und die Nutzung einiger dynamischer Funktionen von Python ist schlicht nicht erlaubt, so dass bestehende Programme teils zur Nutzung mit Codon angepasst werden müssen.

Der Beitrag Python-Compiler verspricht 10- bis 100-fache Leistung erschien zuerst auf Linux-Magazin.

LLVM 15 mit experimentellem DirectX-Support

Mit LLVM können nun auch GPU-Shader für DirectX kompiliert werden. Außerdem unterstützt die Werkzeugsammlung das neue ARMv9.

Die Compiler-Werkzeugsammlung LLVM ist in Version erschienen, wie das Projekt über sein Forum mitteilt. Neu hinzugekommen ist ein Backend für die Grafikschnittstelle DirectX aus Windows, das Microsoft zu dem Open-Source-Projekt hinzufügte. Noch ist die Unterstützung für das sogenannte DirectX-Target jedoch experimentell und wird nicht standardmäßig mit den Binärdateien verteilt, die das LLVM-Projekt selbst erstellt.

Vor mehr als fünf Jahren stellte Microsoft seinen Compiler für die Shader-Sprache HLSL als Open Source zur Verfügung. HLSL sowie der zugehörige Compiler sind Teil der 3D-Grafikbibliothek DirectX. Das freie Analogon in OpenGL heißt GLSL. Mit Hilfe dieser Shader-Sprachen können 3D-Effekte programmiert werden. Zuvor nutzte Microsoft als Shader-Compiler die Eigenentwicklung Fxc. Der neue Shader-Compiler basiert auf LLVM und das neue Backend unterstützt die der DXIL (DirectX Intermediate Language), die wiederum auf der LLVM IR basiert. Die Arbeiten daran hatte Microsoft im Frühjahr dieses Jahres bekannt gegeben.

Neu hinzugekommen ist außerdem die Unterstützung für die neuen ARM-Architektur-Versionen ARMv9-A, ARMv9.1-A und ARMv9.2-A. Diese Architektur hatte der britische Chip-Designer ARM bereits im Frühjahr 2021 vorgestellt (g+) und erweitert damit die ARMv8-Architektur. Neu hinzugekommen sind dabei mehrere Beschleunigereinheiten und die Architektur soll vom Microcontroller- über den Smartphone- bis hin zum Server-CPU-Kern skalieren. Mit LLVM 15 unterstützt wird zudem die Cortex-M85-CPU, die noch auf ARMv8.1 basiert. Änderungen gibt es außerdem an den Backends für RISC-V und x86.

Für das Compiler-Frontend für C-artige Sprachen, Clang, hat das Team mit LLVM 15 außerdem Techniken umgesetzt, die die Sicherheit damit kompilierter Programme erhöhen soll. So gibt es nun die Möglichkeit, auf x86-Chips bestimmte Register zunächst mit Null zu überschreiben, bevor Werte von einer Funktion zurückgegeben werden. Das soll ROP-Angriffe erschweren. Zudem kann das Layout von Strukturen in C nun zufällig erzeugt werden. Damit soll das Erlangen von Informationen aus den Strukturen durch Angreifer erschwert werden.

Der Beitrag LLVM 15 mit experimentellem DirectX-Support erschien zuerst auf Linux-Magazin.

❌