InferPool
同模型推理池:同一模型的 1..8 个会话 + 有界队列。推理仍只走 InferImage,不是第二套推理核。
突发 100 张 / 每毫秒一张都走 submit + wait。max_workers 硬顶 8。GPU 上 yolov8n 建议 1–2。一块 GPU 不要按图片数开会话。100 张突发 = 队列,不是 100 份权重。
UI 只在 activate 要一次码;之后 open 免密。Submit / Wait 永不收密码。close 等在飞推理结束。
Windows 无 RKNN
Windows 收到 rknn 载荷抛 UnsupportedPayloadError。Windows 上指名 edge-rknn 抛 UnsupportedPlatformError。禁止改 Windows ReservedCpuSets,禁止动 PLC 隔离核。池必须在扫描周期外的线程里跑。
功能概览
| 类别 | 属性 | 类型 | 访问 | 说明 |
|---|---|---|---|---|
| 打开 | InferPool.open | InferPool | 类方法 | 打开加密模型池。不收激活码 |
InferPool.activate | InferPool | 类方法 | 出厂包首次激活后开池。UI 只在这里要一次激活码 | |
InferPool.open_with_key | InferPool | 类方法 | 旧双文件旁路 .darmkey。新 DARB1 不要用 | |
InferPool.open_plain | InferPool | 类方法 | 打开明文模型池。与 open 同一推理路径,只跳过容器解码与验票 | |
| 提交 / 等待 | submit | int | 方法 | 提交一张图。返回 ticket。图像会被拷走 |
wait | dict | 方法 | 等待结果 JSON。被 DROP_OLDEST 挤掉的票抛码 19 | |
try_wait | dict | 方法 | 非阻塞。还没好抛码 19(DARRA_BUSY) | |
submit_async | Future | 方法 | 异步糖:submit + 在执行器里 wait | |
| 调度 | set_gpu_slots | None | 函数 | 设置某张卡同时 InferImage 上限。slots=0 不限制 |
| 生命周期 | close | None | 方法 | 拒新任务、等在飞 Infer 结束、关全部会话。重复 close 为 no-op |
__enter__ / __exit__ | InferPool | 方法 | 上下文管理器;退出 with 块时自动 close() |
options 为 None = workers=1、queue=64、FAIL。选项类型见 InferPoolOptions / InferOverflow。