MLIRコンパイラインフラストラクチャにおけるONNXモデルの表現と参照低減
GitHubでプロジェクトを見る onnx/onnx-mlir
このプロジェクトはonnxによってメンテナンスされています
GitHub Pagesでホストされています — テーマはorderedlist
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バージョンをアップグレードする手順は以下のとおりです
独自のブランチを作成します
third_party/onnx
に"cd"し、最新バージョンのonnxのコミットをチェックアウトします(最新のコミットはこちらで確認できます:https://github.com/onnx/onnx/releases)
“pip uninstall onnx”(古いバージョンを削除)
onnx-mlir/
ディレクトリで、“pip install third_party/onnx”(オンラインバージョンではなくコミットからonnxをインストール)
utils/gen_onnx_mlir.py
ファイルを正しいバージョン番号で更新
次のコマンドを使用して、build/
ディレクトリでonnxをビルドします: set CMAKE_ARGS=-DONNX_USE_LITE_PROTO=ON
build/
ディレクトリで次を実行します: “make OMONNXOpsIncTranslation”
build/
ディレクトリで次を実行します: “make onnx-mlir-docs”
build/
ディレクトリで次を実行します: “make check-onnx-backend-case”
新しいバックエンドテストをステップ9
の結果に基づいて更新します
cpuのOpsetドキュメントを更新し、build/
ディレクトリで次のコマンドを実行します: “make onnx_mlir_supported_ops_cpu”
NNPAのOpsetドキュメントを更新し、build/
ディレクトリで次のコマンドを実行します: “make onnx_mlir_supported_ops_NNPA”
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="*"