扩展库 / onnxruntime

onnxruntime

通过 ONNX Runtime 加载模型并执行 CPU 推理。

当前 Windows 包通过 bin/onnxruntime_xlang.dll 提供后端。桥接 DLL 源码尚未提供;本页只说明已验证的 C/xlang 互操作,不把模型精度、所有执行提供者或桥接内部实现视为已验收。

ONNXRUNTIME_XLANG_DLL 显式设置时只尝试该文件;未设置时才搜索常规位置。缺少当前公开调用所需桥接符号的 DLL 会被拒绝,available() 不会误报成功。

主要接口

接口用途
available()、get_available_providers()检查后端与执行提供者
SessionOptions、RunOptions配置会话与单次运行
InferenceSession(path)加载模型,查询输入/输出并执行推理
TensorObject、RunResult构造张量并读取结果

xlang

import onnxruntime

auto session = onnxruntime.InferenceSession("extlibs/rapidocr/models/ch_ppocr_mobile_v2.0_cls_infer.onnx")
assert session.valid(), session.error()
println(session.get_inputs())
println(session.get_outputs())
session.release()

C

公开原型见 include/onnxruntime.h。会话、张量及结果句柄由对应 release 函数释放;后端返回的文本为借用结果。包内 examples/model_info_c.c 与 XLang 范例读取同一模型元数据;从发行目录可直接用 xl run extlibs/onnxruntime/examples/model_info_c.c,也可直接构建为 C 可执行文件。

验证范围

当前 Windows 包级门禁下,GCC 分离构建、C 单文件运行/构建与 XLang 范例的真实模型元数据同输出;零张量 CPU 推理、六类句柄隐式析构、UTF-8 DLL 路径、残缺 DLL 拒绝和原生整数收窄均覆盖 JIT/AOT 公开调用。XLang 包装层拒绝传向 C 零结尾接口的内嵌 NUL 文本。旧构建的带输出 AOT 缺符号在当前发布物中不再复现。示例模型只是测试资产;桥接源码和算法矩阵由插件独立维护,不作为本调用层验收条件。