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オペレーションの再構築のためのthird_party ONNXのインストール

バックエンドテストは、ビルドディレクトリ内のmake check-onnx-backendによってトリガーされ、正常に実行するにはいくつかの準備手順が必要です。同様に、ONNX-MLIRのONNXオペレーションをそのONNX記述から再構築することは、make OMONNXOpsIncTranslationによってトリガーされます。

環境でデフォルトでない場合は、python 3.xをインストールする必要があります。また、トップcmakeファイルでcmake PYTHON_EXECUTABLE変数を設定する必要があるかもしれません。

pybind11も必要になります。これはインストールする必要があるかもしれません(例:mac: brew install pybind11 または linux: apt -y install python3-pybind11)。また、ソフトウェアの場所を示す必要があるかもしれません(Mac、POWER、その他のプラットフォームの場合:export pybind11_DIR=<pybindへのパス>)。次に、トップディレクトリでpip install third_party/onnxと入力して、third_party/onnxソフトウェアをインストールします(Macの場合:pip install third_party/onnx)。

## ONNX-MLIRでのONNXのアップグレード

ONNXバージョンをアップグレードする手順は以下のとおりです

  1. 独自のブランチを作成します

  2. third_party/onnxに"cd"し、最新バージョンのonnxのコミットをチェックアウトします(最新のコミットはこちらで確認できます:https://github.com/onnx/onnx/releases)

  3. “pip uninstall onnx”(古いバージョンを削除)

  4. onnx-mlir/ディレクトリで、“pip install third_party/onnx”(オンラインバージョンではなくコミットからonnxをインストール)

  5. utils/gen_onnx_mlir.pyファイルを正しいバージョン番号で更新

  6. 次のコマンドを使用して、build/ディレクトリでonnxをビルドします: set CMAKE_ARGS=-DONNX_USE_LITE_PROTO=ON

  7. build/ディレクトリで次を実行します: “make OMONNXOpsIncTranslation”

  8. build/ディレクトリで次を実行します: “make onnx-mlir-docs”

  9. build/ディレクトリで次を実行します: “make check-onnx-backend-case”

  10. 新しいバックエンドテストステップ9の結果に基づいて更新します

  11. cpuのOpsetドキュメントを更新し、build/ディレクトリで次のコマンドを実行します: “make onnx_mlir_supported_ops_cpu”

  12. NNPAのOpsetドキュメントを更新し、build/ディレクトリで次のコマンドを実行します: “make onnx_mlir_supported_ops_NNPA”

  13. litテストとバックエンドテストが正常にパスすることを確認すれば完了です!

注:PRを行う前に、変更された可能性のあるファイルにはgit add <filename>を使用してください。

既知の問題

Mac/POWERおよびその他のプラットフォームでは、現在、ONNXのインストール時に発生する問題があります。ビルド中にエラーが発生した場合は、このPRで報告されているように、トップのCMakeファイルを編集することで修正を試してください:https://github.com/onnx/onnx/pull/2482/files

Macでmake check-onnx-backendを実行中に、次のエラーが発生する可能性があります

Fatal Python error: Aborted

Current thread 0x0000000107919e00 (most recent call first):
  File "/usr/local/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 2632 in getproxies_macosx_sysconf
  File "/usr/local/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 2650 in getproxies
  File "/usr/local/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 795 in __init__
  ...

既知の回避策は、シェルでno_proxy環境変数を次のようにエクスポートし、テストを再実行することです。

 % export no_proxy="*"