跳到主要内容

InferPool

同模型推理池:同一模型的 1..8 个会话 + 有界队列。每张图仍走 darra_session_infer_image,不是第二套推理核。不可 CloneDropdarra_pool_close(等在飞推理结束)。Send + Sync。crate 根再导出:use darra_ai::{InferPool, InferPoolOptions, InferOverflow, set_gpu_slots}

max_workers 硬顶 8。GPU 上 yolov8n 建议 1–2。一块 GPU 不要按图片数开会话。100 张突发 = 队列,不是 100 份权重。

提示
  • 打开见 构造
  • submit / wait / try_wait / set_gpu_slotsAPI
  • InferPoolOptions / InferOverflow类型
  • 队列满 / 未完成走 BUSY

快速开始

use darra_ai::{ImageDesc, InferOverflow, InferPool, InferPoolOptions};

let opts = InferPoolOptions::new()
.max_workers(2)
.queue_capacity(100)
.overflow(InferOverflow::Fail);
let pool = InferPool::open("model.darmodel", None, Some(&opts))?;
let ticket = pool.submit(&jpeg, &ImageDesc::auto())?;
let json = pool.wait(ticket)?;

open 不收激活码。未激活走 InferPool::activatesubmit / wait 永不收码。