跳到主要内容

稳定性

长跑时会话和句柄怎么管?​

一个 Session 只装一个模型。用完调 Close 释放句柄,不要长期挂着多个未关会话。批量任务按「开 → 推 → 关」整轮走完,用完即关。

推理出错会不会崩进程?​

不会。失败读结果里的错误码与消息,不吞错、不崩进程。长跑里最常见的两个:

症状典型原因
内部错误参数传错(空句柄、空出参、缓冲没给宽高、长度不够),或 SDK 缺陷
队列忙推理池队列满,或任务未完成

内部错误先自查入参;队列忙按失败处置或加并发(并发与性能)。

队列满了会不会把失败说成成功?​

不会。队列满默认 Overflow.Fail:如实返回失败,不把满队列说成成功。Workers / QueueCapacity:并发与性能。

GPU 降到 CPU 了怎么发现?​

降级结果带 FallbackOccurred / FallbackFrom / FallbackTo / FallbackReason;打开成功后回读 SelectedProvider 记实测落点。指名 Provider 则永不回落(fail-closed),失败按失败报。

Supported / Version / State / SelectedProvider 怎么看?​

Diagnostics 只读、不联网,只读 C:\DARRA\Runtime。

指标来源怎么读
SupportedDiagnostics运行时整体是否可用(bool)
VersionDiagnostics版本串;未装为空串,不编造
State打开后回读枚举 ModelState:未打开 / 未加密 / 试用 / 绑定 / 已绑定
SelectedProvider打开后回读实测 Provider 落点

能力位什么时候是 true?​

Diagnostics 另有十个能力位:OnnxCpu · OnnxCuda · OnnxDirectml · OnnxOpenvino · OnnxTrt · TrtNative · PaddleCpu · PaddleGpu · Torchscript · Rknn。包装好且硬件在才为 true,缺装或缺硬件都是 false,按机器如实报。

没打开模型时回读会抛异常吗?​

不会。IsEncrypted / Task / Labels / MetaJson 未打开给空值、不抛;State 为「未打开」。按空值处理即可,不要当错误吞掉或上报。

试用次数怎么扣?​

试用模型按成功推理扣次,计次在本机。失败不扣。