Torch-MLIRプロジェクトは、PytorchエコシステムからMLIRエコシステムにファーストクラスのコンパイラサポートを提供することを目的としています。
このプロジェクトは、LLVMインキュベータープロセスに参加しています。そのため、公式のLLVMリリースの一部ではありません。インキュベーションステータスは必ずしもコードの完全性または安定性を反映しているわけではありませんが、プロジェクトがLLVMのコンポーネントとしてまだ承認されていないことを示しています。
Pytorch Pytorchは、研究やプロトタイピングから生産レベルの展開までのシームレスな移行を促進するオープンソースの機械学習フレームワークです。
MLIR The MLIRプロジェクトは、ソフトウェアの断片化の問題に対処し、ドメイン固有のコンパイラを開発するコストを削減し、異種ハードウェアのコンパイルを改善し、既存のコンパイラー間の互換性を促進する拡張可能で再利用可能なコンパイラアーキテクチャを構築するための新しいアプローチを提供します。
Torch-MLIRいくつかのベンダーがMLIRをシステムの中間層として採用しており、Pytorch、Jax、TensorflowなどのフレームワークをMLIRにマップし、その後ターゲットハードウェアに下げます。 PytorchからMLIRへの半ダースのカスタムローワーを観察し、MLIRにさらに別のPytorch Frontendを実装する必要があるのではなく、ハードウェアベンダーが独自の価値に焦点を合わせやすくします。究極の目的は、ClangまたはC ++フロントエンドを実装するのではなく、LLVMターゲットサポートを追加する現在のハードウェアベンダーに似ていることです。
トーチMLIR方言まで下がるパスはほとんどありません。
#torch-mlirチャンネル - これは最もアクティブな通信チャネルですtorch-mlirセクション執筆時点で、Python 3.11およびPython 3.10用のTorch-Mlirの事前に構築されたスナップショットをリリースします。
Pythonバージョンをサポートしている場合、次のコマンドは仮想環境を初期化します。
python3.11 -m venv mlir_venv
source mlir_venv/bin/activateまたは、Condaを使用してPythonの複数のバージョンを切り替えたい場合は、Python 3.11を使用してConda環境を作成できます。
conda create -n torch-mlir python=3.11
conda activate torch-mlir
python -m pip install --upgrade pip次に、対応するトーチとトーチビジョンの夜間を備えたTorch-Mlirをインストールできます。
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は、主にコンパイラに統合されてPytorchとOnnxに橋渡しするプロジェクトです。新しい統合を検討している場合、既存のダウンストリームを参照すると役立つ場合があります。
プロジェクトのほとんどはテストパスを介して行使されますが、エンドユーザーがさらに統合せずにAPIを直接使用できる方法はいくつかあります。
# 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)]このプロジェクトは、典型的なMLIRベースのプロジェクトの慣習に従います。
include/torch-mlir 、 lib構造を含めます。test 。torch-mlir-optなどのtools 。pythonトップレベルディレクトリソースからTorch-Mlirを開発して構築したい場合は、開発メモをご覧ください