多硬件适配
Multi-Hardware Adaptation
统一抽象多种GPU/NPU加速设备,自动检测并适配不同硬件平台
子问题
1.设备自动检测
2.显存管理适配
3.缓存清理策略
4.batch size自适应
5.设备特定编译模式配置(如NPU JIT关闭)
6.算子不支持时的跨设备fallback(如MPS→CPU)
7.C/S分离部署时的虚拟显存模拟
8.设备特定推理框架参数注入(如vLLM device config)
各项目的解法1 solutions
Signals
横向对比
| 维度 | MinerU |
|---|---|
| 设备检测 | 嵌套try/except瀑布式探测7种设备,环境变量MINERU_DEVICE_MODE可覆盖 |
| 显存查询 | 统一get_vram接口,支持MINERU_VIRTUAL_VRAM_SIZE虚拟显存模拟 |
| 缓存清理 | clean_memory按设备前缀分发empty_cache + gc.collect |
| batch自适应 | 双级策略:环境变量优先,否则按显存5档映射batch_ratio |
| 设备特化 | NPU关闭JIT编译、MPS启用fallback、corex/kxpu专属vLLM参数 |
| 环境变量体系 | 6个环境变量覆盖设备/显存/batch/公式/表格/VLM配置 |
最佳实践
1.通过统一接口抽象不同硬件的显存查询和缓存清理
2.用环境变量体系覆盖所有自动检测结果,适配容器和CI环境
3.主流设备(CUDA/MPS)直接检测,小众设备用try/except逐级降级
4.显存→batch映射采用分档阶梯而非线性公式,避免边界OOM