Repolode
onnx

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. 1

    ビルド済みのDockerコンテナでセットアップする(docs/Docker.md を参照)

  2. 2

    LinuxまたはmacOS上でONNX-MLIRを直接ビルドする(docs/BuildOnLinuxOSX.md を参照)

  3. 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 の数値は毎日更新されます。

関連プロジェクト