feat(model): 新增 ModelLoader 链式构建 API 及 ORT GPU/Tract 多线程配置

- 在 ddddocr-core 中定义 ModelBuilder Trait 及其错误类型
- ddddocr-ort 支持 use_gpu、device_id 及 num_threads 链式配置与 CUDA 硬件加速
- ddddocr-tract 基于 multithread-mm 特性支持 CPU 线程数控制
- 支持基于 tract-linalg 配置推理线程数,显式引入 tract-linalg 的 multithread-mm 特性,控制 GEMM 算子并发
- 优化线程池加载策略,适配 Tokio 异步及 CLI 等多场景
This commit is contained in:
2026-07-27 20:22:24 +08:00
parent 44dae08221
commit 7d159c5702
28 changed files with 1583 additions and 70 deletions

View File

@@ -1,24 +1,29 @@
[workspace]
resolver = "2"
members = [
"ddddocr-core",
"ddddocr-core", "ddddocr-ort",
"ddddocr-tract",
]
[workspace.package]
version = "0.1.0"
version = "0.2.0"
edition = "2024"
license = "MIT OR Apache-2.0"
[workspace.dependencies]
tract-onnx = { version = "0.21.10" }
anyhow = "1.0.102"
tract-onnx = "0.23.4"
tract-linalg = { version = "0.23.4",features = ["multithread-mm"]}
ort = "2.0.0-rc.12"
ndarray = "0.17.2"
image = "0.25.10"
base64 = "0.22.1"
imageproc = { version = "0.26.2", default-features = true }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.150"
ndarray = "0.16.1"
anyhow = "1.0.102"
thiserror = "1.0" # 刚好可以开始接入你需要的标准库错误处理
tracing = "0.1.44" # 埋入日志打点(后续需要继续优化,现在只是简单尝试)
tracing = "0.1.44" # 埋入日志打点(后续需要继续优化,现在只是简单尝试)