Das Torch-MLIR-Projekt zielt darauf ab, die Erstklassen-Compiler-Unterstützung vom Pytorch-Ökosystem bis zum MLIR-Ökosystem zu bieten.
Dieses Projekt nimmt am LLVM -Inkubatorprozess teil: Daher ist es nicht Teil einer offiziellen LLVM -Veröffentlichung. Während der Inkubationsstatus nicht unbedingt die Vollständigkeit oder Stabilität des Codes widerspiegelt, zeigt dies an, dass das Projekt noch nicht als Bestandteil von LLVM gebilligt wird.
Pytorch Pytorch ist ein Rahmenwerk für maschinelles Lernen von Open-Source-Lernen, das den nahtlosen Übergang von Forschung und Prototyping zu Bereitstellung auf Produktionsebene erleichtert.
MLIR Das MLIR-Projekt bietet einen neuartigen Ansatz zum Aufbau erweiterbarer und wiederverwendbarer Compiler-Architekturen, die sich mit dem Problem der Software-Fragmentierung befassen, die Kosten für die Entwicklung domänenspezifischer Compiler, die Kompilierung für heterogene Hardware und die Förderung der Kompatibilität zwischen bestehenden Compilern verringern.
Torch-Mlir Mehrere Anbieter haben MLIR als mittlere Schicht in ihren Systemen übernommen, sodass sie Frameworks wie Pytorch, Jax und Tensorflow in MLIR kartieren und anschließend auf ihre Zielhardware senken. Wir haben ein halbes Dutzend kundenspezifischer Absenkungen von Pytorch nach MLIR beobachtet, was es den Hardwareanbietern erleichtert, sich auf ihren einzigartigen Wert zu konzentrieren, anstatt ein weiteres Pytorch -Frontend für MLIR implementieren zu müssen. Das ultimative Ziel ist es, den aktuellen Hardwareanbietern zu ähneln, die die LLVM -Zielunterstützung hinzufügen, anstatt dass jeder, der Clang oder ein C ++ - Frontend implementiert.
Wir haben nur wenige Wege, um den Taschenmlir -Dialekt abzusetzen.
#torch-mlir -Kanal auf der LLVM -Zwietracht - Dies ist der aktivste Kommunikationskanaltorch-mlir Abschnitt des LLVM-Diskurses Zum Zeitpunkt des Schreibens veröffentlichen wir vorgefertigte Schnappschüsse von Torch-Mlir für Python 3.11 und Python 3.10.
Wenn Sie die Python -Version unterstützt haben, initialisieren die folgenden Befehle eine virtuelle Umgebung.
python3.11 -m venv mlir_venv
source mlir_venv/bin/activateWenn Sie mit Conda über mehrere Versionen von Python wechseln möchten, können Sie eine Conda -Umgebung mit Python 3.11 erstellen.
conda create -n torch-mlir python=3.11
conda activate torch-mlir
python -m pip install --upgrade pipAnschließend können wir Torch-Mlir mit den entsprechenden Taschen- und Torchvision-Nachtlächen installieren.
pip install --pre torch-mlir torchvision
--extra-index-url https://download.pytorch.org/whl/nightly/cpu
-f https://github.com/llvm/torch-mlir-release/releases/expanded_assets/dev-wheels
Torch-Mlir ist in erster Linie ein Projekt, das in Compiler integriert ist, um sie nach Pytorch und Onnx zu schließen. Wenn Sie über eine neue Integration nachdenken, kann es hilfreich sein, sich auf vorhandene nachgelagerte nachgelagerte zu beziehen:
Während der größte Teil des Projekts über Testpfade ausgeübt wird, gibt es einige Möglichkeiten, wie ein Endbenutzer die APIs ohne weitere Integration direkt verwenden kann:
# Get the latest example if you haven't checked out the code
wget https://raw.githubusercontent.com/llvm/torch-mlir/main/projects/pt1/examples/fximporter_resnet18.py
# Run ResNet18 as a standalone script.
python projects/pt1/examples/fximporter_resnet18.py
# Output
load image from https://upload.wikimedia.org/wikipedia/commons/2/26/YellowLabradorLooking_new.jpg
...
PyTorch prediction
[( ' Labrador retriever ' , 70.65674591064453), ( ' golden retriever ' , 4.988346099853516), ( ' Saluki, gazelle hound ' , 4.477451324462891)]
torch-mlir prediction
[( ' Labrador retriever ' , 70.6567153930664), ( ' golden retriever ' , 4.988325119018555), ( ' Saluki, gazelle hound ' , 4.477458477020264)]Das Projekt folgt den Konventionen typischer MLIR-basierter Projekte:
include/torch-mlir , lib Struktur für C ++ MLIR-Compiler-Dialekte/-Pässe.test zum Halten von Testcode.tools für torch-mlir-opt und dergleichen.python Top -Level -Verzeichnis für Python -Code Wenn Sie Torch-Mlir aus der Quelle entwickeln und bauen möchten