从源代码构建
本项目支持 Python,可以轻松地从源代码构建,或者使用不依赖 Python 的简单 cmake 构建。
Python 包
该包包含所有自定义运算符和一些用于操作 ONNX 模型的 Python 脚本。
- 在 Windows 上安装带有 C++ 开发工具的 Visual Studio,或在 Linux 上安装 gcc(>8.0) 或在 macOS 上安装 xcode,以及在类 Unix 平台上安装 cmake。(提示:在 Windows 平台上,如果使用了 Visual Studio 捆绑的 cmake,请指定集合 VSDEVCMD=%ProgramFiles(x86)%\Microsoft Visual Studio<VERSION_YEAR><Edition>\Common7\Tools\VsDevCmd.bat)
- 如果在 Windows 上运行,请确保为 操作系统 和 git 启用长文件名:
git config --system core.longpaths true
- 准备 Python 环境并在 requirements.txt 中安装 pip 包。
pip install .
以构建和安装软件包。
或者pip install -e .
以开发模式安装软件包,这对于开发者更友好,因为 Python 代码更改将立即生效,而无需将文件复制到磁盘上的不同位置。(提示:setup.cfg 中的 debug=1 将使 C++ 代码在 Python 进程中可调试。)
测试
- “pip install -r requirements-dev.txt” 以安装用于开发的 pip 包。
- 在项目根目录中运行
pytest test
。
有关已验证的构建配置的完整列表,请参阅此处
Java 包
运行 bash ./build.sh -DOCOS_BUILD_JAVA=ON
以在 out/ 中构建 jar 包
Android 包
- 先决条件:Android Studio
使用 ./tools/android/build_aar.py
构建 Android AAR 包。
iOS 包
使用 ./tools/ios/build_xcframework.py
构建 iOS xcframework 包。
Web-Assembly
由于 WASM 中缺乏良好的动态链接机制,ONNXRuntime-Extensions 将作为静态库构建并与 ONNXRuntime 链接。以下是在构建 onnxruntime 时包含 ONNXRuntime-Extensions footprint 的两个附加参数 –-use_extensions 和 –extensions_overridden_path。
C++ 共享库
对于任何其他情况,请运行 build.bat
或 bash ./build.sh
来构建库。默认情况下,DLL 或库将在目录 out/<OS>/<FLAVOR>
中生成。有一个单元测试可以帮助验证构建。
VC 运行时静态链接 如果您想使用 VC 运行时静态链接构建二进制文件,请在运行 build.bat 时添加参数 _-DCMAKE_MSVC_RUNTIME_LIBRARY=”MultiThreaded$<$
版权指南
查看此链接 https://docs.opensource.microsoft.com/releasing/general-guidance/copyright-headers/ 以获取源文件版权标头。
构建带有 onnxruntime-extensions 的 ONNX Runtime 以用于 Java 包
以下步骤仅针对 Windows 平台演示,其他平台如 Linux 和 MacOS 可以类似地完成。
也支持 Android 构建;查看此处以获取构建 AAR 包的参数。
所需工具
- 安装 visual studio 2022(带有 cmake、git、桌面 C++)
- 安装 miniconda 以获得 Python 支持(用于 onnxruntime 构建)
- OpenJDK:https://docs.microsoft.com/en-us/java/openjdk/download (OpenJDK 11.0.15 LTS)
- Gradle:https://gradle.org.cn/releases/ (v6.9.2)
命令
在 Windows 终端中启动 VS 2022 的开发者 PowerShell
. $home\miniconda3\shell\condabin\conda-hook.ps1
conda activate base
$env:JAVA_HOME="C:\Program Files\Microsoft\jdk-11.0.15.10-hotspot"
# clone ONNXRuntime
git clone -b rel-1.12.0 https://github.com/microsoft/onnxruntime.git onnxruntime
# clone onnxruntime-extensions
git clone https://github.com/microsoft/onnxruntime-extensions.git onnxruntime_extensions
# build JAR package in this folder
mkdir ortall.build
cd ortall.build
python ..\onnxruntime\tools\ci_build\build.py --config Release --cmake_generator "Visual Studio 17 2022" --build_java --build_dir . --use_extensions --extensions_overridden_path "..\onnxruntime-extensions"
依赖项
下表列出了 onnxruntime-extensions 的各个依赖项的版本。 这些是我们的 CI 例行和广泛验证的配置。
Python | 3.8 | 3.9 | 3.10 | 3.11 |
---|---|---|---|---|
Onnxruntime | 1.12.1 (2022 年 8 月 4 日) | 1.13.1(2022 年 10 月 24 日) | 1.14.1(2023 年 3 月 2 日) | 1.15.0(2023 年 5 月 24 日) |