MLIRベースのコンパイラとランタイム。MLモデルを統一IRに変換し、データセンターからモバイル・エッジデバイスまで展開できます。
onnx/onnx-mlir
ONNXのニューラルネットワークグラフをMLIR経由でコードに変換し、実行時の依存関係を最小限に抑えるコンパイラ。
- スター
- 1,066
- フォーク
- 457
- 未解決の Issue
- 357
- 最終コミット
- 10 時間前
これは何?
ONNX-MLIRは、有効なONNXモデルグラフを受け取り、そのグラフを実装するコードにコンパイルします。実行時に必要なサポートを最小限に抑えることを目指しています。ONNX標準を実装しており、LLVM/MLIRコンパイラ基盤をベースに構築されています。
このプロジェクトは、ほかのMLIRベースのプロジェクトに組み込めるONNX dialect、ONNXグラフをMLIRファイル、LLVM bytecode、Cライブラリ、Javaライブラリに変換するコンパイラインターフェース、そしてonnx-mlirコマンドラインドライバーを提供します。また、コンパイル済みモデルの読み込みと実行に使えるPython、C、C++、Javaのランタイムインターフェースも含まれています。
個々のONNXオペレーションの対応状況は、汎用CPUバックエンドやIBMのTelum統合AIアクセラレーターなど、ターゲットごとに管理されています。Linux、macOS、Windows上でネイティブにビルドでき、推奨環境としてDockerイメージも提供されています。
主な機能
- 01ONNXグラフをMLIR、LLVM IR、オブジェクトファイル、共有ライブラリ、JARファイルに変換します。
- 02ほかのMLIRプロジェクトで再利用できるONNX dialectを提供します。
- 03Python、C、C++、Javaのランタイムインターフェースを提供します。
- 04最適化レベルO0からO3に対応し、環境変数からフラグを読み込めます。
- 05CPUおよびIBM Telum NNPAターゲットについて、オペレーションごとの対応状況を公開しています。
ユースケース
- 実行時の依存関係を最小限に抑えたコンパイル済みライブラリとして、ONNXモデルをデプロイする。
- NNPAバックエンドを使って、ONNXモデルをIBM Telumサーバー向けに実行する。
- ONNX dialectをMLIRパイプラインに組み込むコンパイラツールを開発する。
クイックスタート
- 1
ビルド済みのDockerコンテナでセットアップする(docs/Docker.md を参照)
- 2
LinuxまたはmacOS上でONNX-MLIRを直接ビルドする(docs/BuildOnLinuxOSX.md を参照)
- 3
ビルドしたドライバーでONNXモデルをONNX dialectに変換する
./onnx-mlir --EmitONNXIR add.onnx
使う前に知っておきたいこと
- ソースからビルドするには、特定のLLVM/MLIRコミットと、clang、protobuf、cmakeなどの複数の前提条件が必要です。
- 簡単にインストールできるパッケージマネージャー経由の方法はありません。一部のシステムではセットアップが難しいため、Dockerの使用をおすすめします。
- サポートされる操作は、プロジェクトのsupported-opsドキュメントに記載されたものに限られます。
収録されている特集
トピック
よくある質問
- onnx-mlir とは?
- ONNXのニューラルネットワークグラフをMLIR経由でコードに変換し、実行時の依存関係を最小限に抑えるコンパイラ。 ONNX-MLIRは、有効なONNXモデルグラフを受け取り、そのグラフを実装するコードにコンパイルします。実行時に必要なサポートを最小限に抑えることを目指しています。ONNX標準を実装しており、LLVM/MLIRコンパイラ基盤をベースに構築されています。
- onnx-mlir は無料で使えますか?ライセンスは?
- onnx-mlir は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- onnx-mlir は今もメンテナンスされていますか?
- 活発にメンテナンス中。onnx-mlir の最終コミットは 2026年11月6日 です。
- onnx-mlir は何に使えますか?
- 実行時の依存関係を最小限に抑えたコンパイル済みライブラリとして、ONNXモデルをデプロイする。 NNPAバックエンドを使って、ONNXモデルをIBM Telumサーバー向けに実行する。 ONNX dialectをMLIRパイプラインに組み込むコンパイラツールを開発する。
- onnx-mlir のインストール方法は?
- ビルド済みのDockerコンテナでセットアップする(docs/Docker.md を参照) LinuxまたはmacOS上でONNX-MLIRを直接ビルドする(docs/BuildOnLinuxOSX.md を参照) ビルドしたドライバーでONNXモデルをONNX dialectに変換する: ./onnx-mlir --EmitONNXIR add.onnx
- onnx-mlir はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/onnx/onnx-mlir
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Python風のコードで高効率な深層学習向けGPUカーネルを記述できる言語・コンパイラ。CUDAより高い生産性を目指します。
ONNX形式にエクスポートしたMLモデルを実行するクロスプラットフォームのアクセラレーター。PyTorchスクリプトでの学習にも対応します。
Java APIでモデルの構築、学習、実行ができる、特定のエンジンに依存しないJava向け深層学習フレームワーク。
Ultralytics YOLOv5は、物体検出、インスタンスセグメンテーション、画像分類の学習とエクスポートに対応した、PyTorchベースのコンピュータービジョンツールキットです。
モバイル、組み込み機器、デスクトップで深層学習モデルを実行するための、高性能なC++ニューラルネットワーク推論フレームワークです。