ONNX 模型在 MLIR 编译器基础设施中的表示和参考下推
此项目由 onnx 维护
托管于 GitHub Pages — 主题来自 orderedlist
后端测试由构建目录中的make check-onnx-backend
触发,需要一些预备步骤才能成功运行。同样,从ONNX描述中重新构建ONNX-MLIR中的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=<your path to pybind>
)。然后,在顶层目录中键入,安装third_party/onnx
软件(Mac:pip install third_party/onnx
)。
## 在ONNX-MLIR中升级ONNX
以下是升级ONNX版本的步骤
创建您自己的分支
进入third_party/onnx
目录并签出最新ONNX版本的commit(您可以在此处找到最新commit:https://github.com/onnx/onnx/releases)
“pip uninstall onnx”(删除旧版本)
在onnx-mlir/
目录中,“pip install third_party/onnx”(从commit安装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__
...
一个已知的解决方法是像下面这样在您的shell中导出no_proxy
环境变量,然后重新运行测试。
% export no_proxy="*"