请输入
菜单

DDS 预热操作说明

作者: JT下载

功能简介

DDS(深度学习分割)模型首次使用时需要约 10–15 秒加载到显存,客户点击检测时会感受到明显卡顿。预热功能可以在空闲时提前加载模型,预热完成后每次检测即点即响应(约 30–50 ms/张)。

典型使用场景:

  • 客户切换到新教学方案时,提前点一次预热,后续批量检测全程流畅
  • 通过 UDP 集成的产线系统,开机后自动发预热命令,保证首张图不卡

一、界面操作

位置

主界面 → 教学文件列表 → 工具条上的火焰按钮 fire

操作步骤

  1. 选中 一个或多个教学文件,或整个分组(支持按住 Ctrl 多选)
  2. 点击工具条上的 fire DDS 预热按钮
  3. 弹出进度对话框,等待完成(通常 10–30 秒,视模型数量而定)
  1. 完成后,已预热的教学文件图标会变成 fire

二、UDP 命令集成

命令码

复制代码
CMD = 1106

参数格式

分号 ; 分隔的名字列表,每个名字可以是教学文件名分组名

参数示例 含义
(空字符串) 预热全部教学文件
teaching1 预热单个教学文件
Default 预热 Default 分组下全部教学文件
teaching1;BGA组;teaching2 混合:文件名和分组名任意组合

名字优先按教学文件解析,找不到再按分组解析。

数据报格式

沿用 FIX 标准 UDP 协议(16 字节包头 + 参数体):

偏移 字段 长度 说明
0–7 魔数 8 "FIX00000"
8–9 ACK 2 应用层序列号
10–11 命令码 2 1106
12–15 参数长度 4 N
16–... 参数体 N UTF-8 文本

响应格式

响应体为 key=value; 形式的一行文本:

复制代码
loaded=2;failed=0;skipped_vram=0;models=fix-solder-ddsv10.ptx,fix-void-ddsv10.ptx
字段 含义
loaded 成功预热的模型数量
failed 加载失败的模型数量
skipped_vram 因显存不足跳过的模型数量
models 成功预热的模型文件名列表(逗号分隔)
failed_models 失败的模型列表(失败时才出现)
skipped_models 跳过的模型列表(跳过时才出现)
error 错误原因(出错时出现,取值:chain_running / no_match

错误码

错误码 常量名 含义
0 RET_OK 成功(即使 0 个模型被加载也是成功)
32 RET_TeachingFileNotExists 传入的名字都匹配不到文件或分组
64 RET_TeachingFileExecError 当前正在检测中,拒绝预热

调用示例

场景 1:预热 "产品A" 分组下全部方案

复制代码
请求参数: "产品A"
响应:    loaded=3;failed=0;skipped_vram=0;models=fix-solder-ddsv10.ptx,fix-void-ddsv10.ptx,fix-bga-solder.ptx
错误码:   0

场景 2:检测进行中发送预热命令

复制代码
请求参数: "Default"
响应:    loaded=0;failed=0;skipped_vram=0;error=chain_running
错误码:   64

客户端应稍后重试。

场景 3:预热所有方案(空参数)

复制代码
请求参数: ""
响应:    loaded=8;failed=0;skipped_vram=0;models=...
错误码:   0

三、注意事项

  1. 预热是内存缓存:关闭 FIX 程序后需要重新预热
  2. 检测进行中无法预热:请等待当前检测完成后再发送命令
  3. 显存不足会自动跳过:不会导致程序异常,响应中会列出跳过的模型
  4. 单次预热耗时 10–15 秒/模型:多个模型串行执行,UDP 客户端应设置足够的超时时间(建议 ≥ 60 秒
  5. 模型文件更新后需重新预热:如果客户端覆盖了 .ptx 模型文件,需重启 FIX 并再次触发预热
  6. 建议集成方式:产线系统开机初始化阶段发送一次预热命令,后续正式生产前再检查一次预热状态

四、常见问题

Q: 预热一次可以管多久?
A: 只要 FIX 程序不关闭,预热状态持续有效。

Q: 预热后模型占多少显存?
A: 每个 DDS 模型约占 500 MB–1.5 GB 显存(视模型大小而定)。RTX 4070 Ti (12 GB) 可同时驻留 6–8 个模型。

Q: 为什么 ONNX 模型没被预热?
A: ONNX 模型加载本身已经很快(<100 ms),首次推理约 500 ms,总体可接受,故无需预热。

Q: UDP 预热命令返回 loaded=0,是否代表失败?
A: 不一定。如果教学方案中没有 DDS 模型(例如全是 ONNX 或规则),响应会是 loaded=0;failed=0;skipped_vram=0,错误码仍为 0,属于正常情况

上一个
FIX 共享内存使用说明 V2
下一个
FIX 训练系统 (FTS)
最近修改: 2026-04-18Powered by