ONNX 模型在 MLIR 编译器基础设施中的表示和参考降低
此项目由 onnx 维护
托管在 GitHub Pages 上 — 主题由 orderedlist 提供
如果在第一次 onnx-mlir
构建期间遇到问题,则可能需要检查构建使用的 cmake 变量。有关帮助,请参阅本页面的最后一部分。
如果您已成功使用源目录一段时间,则在合并来自 main
分支的最新更改后,您可能会遇到重建 onnx-mlir
的困难。
以下是您可能执行的几个步骤。如果其中任何一个适用,建议删除 onnx-mlir/build
子目录,并使用 cmake
命令从头开始重建。
如果最新的 onnx-mlir
main
分支已移动到 llvm-project
的较新提交级别,则构建过程通常会遇到与 LLVM 和 MLIR 代码相关的多个编译器错误。
所需级别位于 构建 ONNX-MLIR 页面中第一个代码框中,位于 git checkout
命令旁边。
代码中使用的级别可以通过在 llvm-project
子目录中执行 git log
来找到。
如果它们不匹配,请将 llvm 项目更新到所需级别。
通常,当我们更新 ONNX 操作级别时,会导致 third_party/onnx
子目录中出现新的软件。如果未能更新该代码,通常会导致与 ONNX 方言代码相关的编译器错误。
最简单的办法是删除 third_party
目录,然后使用 git submodule update --init --recursive
重新安装代码。
有时,方言更新需要重建整个构建目录。您可能会看到典型的错误是缺少声明,例如对 verifier
方法的声明。建议是简单地删除 onnx-mlir/build
子目录,并使用 cmake
命令从头开始重建。
如果在构建过程中遇到与 protobuf 相关的错误,请检查以下潜在原因
这些以及许多其他用于设置构建环境的技巧是为什么我们建议使用 onnxmlir/onnx-mlir-dev docker 镜像进行开发。
要运行 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
或 make
调用 check-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
或 make
调用 check-onnx-numerical
目标。
在安装了下面的第三方 ONNX 后,可以使用以下命令运行 doc ONNX-MLIR 测试。有关首先安装第三方 ONNX 项目的详细信息,请参阅 此处。请注意,安装我们第三方子目录中列出的 ONNX 项目的版本至关重要,因为 ONNX-MLIR 可能落后于 ONNX 标准中的最新版本。
[same-as-file]: <> ({“ref”: “utils/check-docs.cmd”, “skip-ref”: 1})
call cmake --build . --config Release --target check-docs
或者,只需在构建目录中为 ninja
或 make
调用 check-docs
目标。
编译 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 指向安装目录时,需要此参数。