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 测试,请使用以下命令
[与文件相同]: <> ({“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 测试,请使用以下命令
[与文件相同]: <> ({“ref”: “utils/check-onnx-numerical.cmd”, “skip-ref”: 1})
call cmake --build . --config Release --target check-onnx-numerical
或者直接在构建目录中调用 ninja 或 make 的 check-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
或者直接在构建目录中调用 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)。如果 MLIR_DIR 尚未通过之前的 cmake 调用设置,则此项是必需的。
LLVM_EXTERNAL_LIT:PATH 指向 lit 工具的路径。默认为空字符串,如果可能,LLVM 将根据 MLIR_DIR 查找该工具。当 MLIR_DIR 指向安装目录时,此项是必需的。