配置
darra_model_config 的每个字段填 0 或 NULL,就表示用默认值。你可以在 create 模型时把配置传进去。
typedef struct darra_model_config {
const char* provider;
int32_t gpu_id;
int32_t timeout;
const double* default_thresholds;
size_t default_thresholds_count;
int threads;
int workers;
int queue_capacity;
int weight;
} darra_model_config; /* 无 size 字段,全 0/NULL = 默认 */
字段
| 配置项 | 类型 | 默认 | 说明 |
|---|---|---|---|
| provider | const char* | NULL = 自动挑选 | 后端 ID:onnx-cpu / onnx-cuda / onnx-openvino / onnx-trt-ep / onnx-directml / trt-native / paddle-cpu / paddle-gpu / edge-rknn / torchscript-cpu |
| gpu_id | int32_t | 0 = 第一块卡 | 多卡机器可填 0 到 3 |
| timeout | int32_t | 0 = 不限 | 推理等待上限,毫秒 |
| default_thresholds / default_thresholds_count | const double* + size_t | NULL = 不按分数过滤 | 每类最低分,下标 = class_id,取值 0 到 1 |
| threads | int | 0 = 自动 | 推理线程数,同时用于 intra 和 inter |
| workers | int | 0/1 = 单会话 | 并发会话数 |
| queue_capacity | int | 0 = 64 | 会话池队列上限,满了按 overflow 策略处理 |
| weight | int | 0 = 100 | 同卡多实例份额,只在 open 之前有效 |
修改配置的函数一览
这些设置要在 open 之前登记,下一次 open 才生效;timeout 和 default_thresholds 运行期间改了也有效。
DARRA_API int32_t darra_model_set_provider(darra_model* h, const char* provider_or_null);
DARRA_API int32_t darra_model_set_gpu_id(darra_model* h, int32_t gpu_id);
DARRA_API int32_t darra_model_set_timeout(darra_model* h, int32_t timeout_ms);
DARRA_API int32_t darra_model_set_default_thresholds(darra_model* h, const double* th, size_t count);
DARRA_API int32_t darra_model_set_threads(darra_model* h, int threads);
DARRA_API int32_t darra_model_set_workers(darra_model* h, int workers);
DARRA_API int32_t darra_model_set_queue(darra_model* h, int queue_capacity);
DARRA_API int32_t darra_model_set_weight(darra_model* h, int weight);
要给类别名赋值,用 darra_model_set_labels / darra_model_clear_labels,随时可调,open 后生效。