onnx-mlir

Logo

ONNX 模型在 MLIR 编译器基础设施中的表示和参考下推

在 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) 检查正确的第三方支持

通常,当我们更新 ONNX 操作级别时,它会导致 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 测试,请使用以下命令

[与文件相同]: <> ({“ref”: “utils/check-onnx-mlir.cmd”, “skip-ref”: 1})

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

或者直接在构建目录中调用 ninjamakecheck-onnx-lit 目标。

要运行数值 ONNX-MLIR 测试,请使用以下命令

[与文件相同]: <> ({“ref”: “utils/check-onnx-numerical.cmd”, “skip-ref”: 1})

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

或者直接在构建目录中调用 ninjamakecheck-onnx-numerical 目标。

要运行 doc ONNX-MLIR 测试,请在安装下方所示的第三方 ONNX 后使用以下命令。首次安装第三方 ONNX 项目的详细信息请参见此处。请注意,安装我们第三方子目录中列出的 ONNX 项目版本至关重要,因为 ONNX-MLIR 可能落后于 ONNX 标准的最新版本。

[与文件相同]: <> ({“ref”: “utils/check-docs.cmd”, “skip-ref”: 1})

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

或者直接在构建目录中调用 ninjamakecheck-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)。如果 MLIR_DIR 尚未通过之前的 cmake 调用设置,则此项是必需的。

LLVM_EXTERNAL_LIT:PATH 指向 lit 工具的路径。默认为空字符串,如果可能,LLVM 将根据 MLIR_DIR 查找该工具。当 MLIR_DIR 指向安装目录时,此项是必需的。