跳到主要内容

运行时

运行时 Provider 包管理、版本查询、环境诊断。对应 darra_runtime_ensure / darra_version / darra_diag_collect

公开 runtime 包只装推理所需的 Provider,不含加密 / 签发符号。

AiRuntime
├── ensure / ensureCancel // 装包 → 安装
├── packedVersion / versionString // 版本
└── VERSION_MAJOR / MINOR / PATCH // 与头文件对齐

AiDiagnostics.collect // 去敏 JSON;禁止放进 PLC 扫描周期

功能概览

类别属性类型访问说明
AiRuntimeVERSION_MAJORint常量头文件 DARRA_VERSION_MAJOR。NativeLoader 加载时已核对此值(1)
VERSION_MINORint常量与 DARRA_VERSION_MINOR 对齐
VERSION_PATCHint常量与 DARRA_VERSION_PATCH 对齐
ensurevoid静态确保 Provider / profile 已装好。重载:ensure() / ensure(id) / ensure(id, offlineZip, listener)。幂等
ensureCancelvoid静态请求取消当前在飞的 ensure。可从任意线程调(含 UI 线程);进度回调内部禁止
packedVersionint查询打包版本 major*65536 + minor*256 + patch
versionStringString查询形如 1.0.0+runtime 的静态串。客户机必须看到 +runtime
诊断AiDiagnostics.collectString静态本机环境诊断 JSON(去敏)。耗时可到数百毫秒,禁止放进 PLC 扫描周期

Provider / profile ID

合法 ID(darra_ai.h 第 5 节,不得另造):

类别属性类型访问说明
细包onnx-cpuProvider入参ORT CPU
细包onnx-cudaProvider入参ORT CUDA EP
细包onnx-openvinoProvider入参ORT OpenVINO EP
细包onnx-trt-epProvider入参ORT TensorRT EP
细包trt-nativeProvider入参裸 TensorRT 引擎
细包edge-rknnProvider入参仅 linux-arm64。Windows 上指名抛 UnsupportedPlatformException
场景包cpu-onlyprofile入参细包清单,不产生新二进制
场景包nvidia-gpuprofile入参同上
场景包intel-iapprofile入参同上
场景包amd-dmlprofile入参同上
场景包board-rk3588profile入参同上
自动null入参按硬件探测自动选细包(默认推荐)
Windows 无 RKNN

edge-rknn 永远不会出现在 Windows 安装列表。在 Windows 上指名它 → AiException.UnsupportedPlatformExceptionDARRA_UNSUPPORTED_PLATFORM)。Windows 收到 rknn 载荷 → AiException.UnsupportedPayloadExceptionDARRA_UNSUPPORTED_PAYLOAD)。RKNN 只在 linux-arm64(RK3588 + edge-rknn + librknnrt)运行。

Paddle 是运行时载荷(PayloadKind=paddle),不是上表里的独立 Provider ID。打开 Paddle 明文 / 容器时按载荷 × 硬件选已有 Provider。

快速开始

AiRuntime.ensure("cpu-only", null, (percent, stage) ->
System.out.printf("\r[%-8s] %5.1f%%", stage, percent));
System.err.println(AiRuntime.versionString());
String diag = AiDiagnostics.collect();

装包签名见 安装,版本与诊断见 版本与诊断