SuperAPI AI 工具集

ort-build

编程与开发

查看项目

更新于 10-16 00:31

技能介绍

用途:从源码构建 ONNX Runtime,适合需要编译、生成 CMake 文件或构建指定目标的场景。build.sh(Linux/macOS)与 build.bat(Windows)会转调 tools/ci_build/build.py。

主要能力与阶段:构建分三阶段,由 --update(生成 CMake 构建文件)、--build(编译,可加 --parallel 加速)、--test(运行测试)控制。本机构建未指定阶段且未传 --skip_tests 时默认三者全跑;交叉编译默认只跑 --update 与 --build。需要 --update 的情形:新构建目录首次构建、新增源文件、CMake 配置变化(新标志或 CMakeLists.txt 更新);仅改已有 .cc/.h 文件时不必 --update,直接 --build 更省时。

常用示例:完整构建 ./build.sh --config Release --parallel;仅重新生成 CMake 文件 ./build.sh --config Release --update;仅编译 ./build.sh --config Release --build --parallel;仅测试 ./build.sh --config Release --test;启用 CUDA EP 时加 --use_cuda --cuda_home /usr/local/cuda --cudnn_home /usr/local/cuda;构建 Python wheel 加 --build_wheel;构建指定目标加 --target onnxruntime_common(需 --build);可用选项文件 ./build.sh "@./custom_options.opt" --build --parallel。

关键标志:--config(Debug、MinSizeRel、Release、RelWithDebInfo)、--parallel、--skip_tests、--build_wheel、--use_cuda、--target、--use_webgpu、--cmake_extra_defines onnxruntime_QUICK_BUILD=ON、--build_dir。其中 QUICK_BUILD=ON 可加快 CUDA 构建,但只为 head_dim 128 编译 Flash,多数注意力形状会回退到 MEA,不宜用于描述 Flash 与架构行为。

输出路径:默认 build/<Platform>/<Config>/,Platform 为 Linux、MacOS 或 Windows;Visual Studio 多配置生成器下配置名出现两次(如 build/Windows/Release/Release/)。可用 --build_dir 自定义,例如 --build_dir .\build\WGPU --config RelWithDebInfo 会在 build/WGPU/RelWithDebInfo/ 建立 CMake 构建树。

使用建议与限制:构建前激活 Python 虚拟环境;重定向输出时优先直接用 python tools/ci_build/build.py,因 .bat 包装器在 cmd.exe 中运行会破坏 PowerShell 重定向;将输出重定向到文件(如 > build_log.txt 2>&1)并后台运行,完整构建可能耗时数十分钟到一小时以上,需轮询日志中的 "Build complete" 或错误;默认使用 --parallel。构建标志可能静默改变实际执行的 kernel/代码路径,排查失败前应先确认实际运行的 kernel。用户未说明构建目标(配置、执行提供程序、wheel 等)时应先询问。其他细节暂未提供。