onnx-mlir

Logo

MLIRコンパイラインフラストラクチャにおけるONNXモデルの表現と参照の低下

GitHubでプロジェクトを見る onnx/onnx-mlir

ハウツー

Pythonを使った推論
C/C++を使った推論
Javaを使った推論

参考文献

ONNX方言
OMTensor C99ランタイムAPI
OMTensorList C99ランタイムAPI
OMTensor JavaランタイムAPI
OMTensorList JavaランタイムAPI
ONNX方言の生成
ドキュメントについて

開発

操作の追加
テストガイドライン
エラー処理
コマンドラインオプション
計測
定数伝播
アクセラレータの追加

ツール

ツール

RunONNXModel.py
DocCheck

このプロジェクトは、onnxによって維持されています。

GitHub Pagesでホストされています — テーマはorderedlistによるものです。

ONNX-MLIR: ONNX_MLIRのビルドトラブルシューティングとテスト

ONNX-MLIRのビルドのトラブルシューティング

最初のonnx-mlirビルド中に問題が発生した場合は、ビルドで使用されているcmake変数を確認する必要があるかもしれません。ヘルプについては、このページの最後のセクションを参照してください。

ソースディレクトリをしばらく正常に使用していた場合、mainブランチから最新の変更をマージした後にonnx-mlirの再構築に問題が発生する可能性があります。

以下は、実行できるいくつかの手順です。いずれかが該当する場合は、onnx-mlir/buildサブディレクトリを削除し、cmakeコマンドを使用して最初から再構築することをお勧めします。

1) llvm-projectの正しいコミットの確認

最新のonnx-mlir mainブランチがllvm-projectの新しいコミットレベルに移動した場合、ビルドプロセスでは通常、LLVMおよびMLIRコードに関連する複数のコンパイラエラーが発生します。

必要なレベルは、ONNX-MLIRのビルドページの最初のコードボックスのgit checkoutコマンドの横に記載されています。

コードで使用されているレベルは、llvm-projectサブディレクトリでgit logを実行することで確認できます。

一致しない場合は、llvmプロジェクトを必要なレベルに更新してください。

2) 正しいthird_partyサポートの確認

通常、ONNX opレベルを更新すると、third_party/onnxサブディレクトリに新しいソフトウェアが追加されます。そのコードの更新に失敗すると、通常、ONNX方言コードに関連するコンパイラエラーが発生します。

third_partyディレクトリを削除し、git submodule update --init --recursiveを使用してコードを再インストールする方が簡単です。

3) 方言の更新

方言の更新によっては、ビルドディレクトリ全体を再構築する必要がある場合があります。表示される可能性のある一般的なエラーは、たとえばverifierメソッドへの宣言がないことです。onnx-mlir/buildサブディレクトリを削除し、cmakeコマンドを使用して最初から再構築することをお勧めします。

ビルド中にprotobuf関連のエラーが発生した場合は、以下の潜在的な原因を確認してください。

これらのビルド環境の設定に関する多くの問題は、開発にonnxmlir/onnx-mlir-dev Dockerイメージを使用することをお勧めする理由です。

ONNX-MLIRの高レベルテスト

lit ONNX-MLIRテストを実行するには、次のコマンドを使用します

[same-as-file]: <> ({“ref”: “utils/check-onnx-mlir.cmd”, “skip-ref”: 1})

call cmake --build . --config Release --target check-onnx-lit

または、ビルドディレクトリでninjaまたはmakecheck-onnx-litターゲットを呼び出すだけです。

数値ONNX-MLIRテストを実行するには、次のコマンドを使用します

[same-as-file]: <> ({“ref”: “utils/check-onnx-numerical.cmd”, “skip-ref”: 1})

call cmake --build . --config Release --target check-onnx-numerical

または、ビルドディレクトリでninjaまたはmakecheck-onnx-numericalターゲットを呼び出すだけです。

doc ONNX-MLIRテストを実行するには、以下に示すthird_party ONNXをインストールした後に、次のコマンドを使用します。third_party ONNXプロジェクトを最初にインストールする方法の詳細は、こちらに記載されています。ONNX-MLIRはONNX標準の最新バージョンより遅れている可能性があるため、third_partyサブディレクトリにリストされているONNXプロジェクトのバージョンをインストールすることが重要です。

[same-as-file]: <> ({“ref”: “utils/check-docs.cmd”, “skip-ref”: 1})

call cmake --build . --config Release --target check-docs

または、ビルドディレクトリでninjaまたはmakecheck-docsターゲットを呼び出すだけです。

LLVMおよびONNX-MLIR Cmake変数の概要

ONNX-MLIRのコンパイル時に、LLVMおよびONNX-MLIRの次のCMake変数を使用できます。

**MLIR_DIR**:PATH llvm-projectのビルドまたはインストールディレクトリ内にあるmlir cmakeモジュールへのパス(例:c:/repos/llvm-project/build/lib/cmake/mlir)。これは、以前のcmake呼び出しから**MLIR_DIR**がまだ設定されていない場合に必要です。

**LLVM_EXTERNAL_LIT**:PATH litツールへのパス。デフォルトは空の文字列で、LLVMは可能であれば**MLIR_DIR**に基づいてツールを見つけます。これは、**MLIR_DIR**がインストールディレクトリを指している場合に必要です。