-
|
Mineru在跑的过程中CPU资源占用1~2核,但是OCR跑完以后,CPU资源会瞬间拉升到6核。请问一下这是什么原因导致的呢? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
|
Hi @cq-ldg! I'm Dosu and I’m helping the MinerU team. 造成OCR结束后CPU资源瞬间拉升到6核,主要原因通常是OCR阶段或后续处理没有用到GPU加速,导致所有推理和批量处理都在CPU上并发执行,尤其是在新版MinerU(>=2.1.2)批量参数提升后,CPU负载会明显增加。常见触发点包括:环境变量(如MINERU_DEVICE_MODE、CUDA_VISIBLE_DEVICES)或Docker参数配置不一致,PyTorch未正确识别GPU,或FastAPI/Uvicorn等并发模式下模型实例未独立初始化,导致OCR和后处理全部走CPU多线程/多进程并发,瞬间占满多个核心。 此外,OCR结束后MinerU还会进行图片方向分类、表格分类等模型推理,这些步骤也会批量并发处理图片,进一步拉高CPU使用率。新版代码还将图片转为numpy数组并用批量推理方式处理布局、公式识别等任务,这些操作本身就会消耗大量CPU资源,尤其在GPU不可用或未配置时表现更明显。 建议检查容器内PyTorch的CUDA可用性、环境变量和Docker参数是否一致,确认日志中模型初始化和推理阶段是否分配到GPU。如果确认GPU可用但CPU依然高负载,可以尝试单独跑OCR最小脚本排查,或调整批量参数(如MINERU_MIN_BATCH_INFERENCE_SIZE、OCR_DET_BASE_BATCH_SIZE)来缓解瞬时CPU压力。 详细原理和排查方法可参考相关讨论:讨论1、讨论2、PR说明。 To reply, just mention @dosu. Share context across your team and agents. Try Dosu. |
Beta Was this translation helpful? Give feedback.
Hi @cq-ldg! I'm Dosu and I’m helping the MinerU team.
造成OCR结束后CPU资源瞬间拉升到6核,主要原因通常是OCR阶段或后续处理没有用到GPU加速,导致所有推理和批量处理都在CPU上并发执行,尤其是在新版MinerU(>=2.1.2)批量参数提升后,CPU负载会明显增加。常见触发点包括:环境变量(如MINERU_DEVICE_MODE、CUDA_VISIBLE_DEVICES)或Docker参数配置不一致,PyTorch未正确识别GPU,或FastAPI/Uvicorn等并发模式下模型实例未独立初始化,导致OCR和后处理全部走CPU多线程/多进程并发,瞬间占满多个核心。
此外,OCR结束后MinerU还会进行图片方向分类、表格分类等模型推理,这些步骤也会批量并发处理图片,进一步拉高CPU使用率。新版代码还将图片转为numpy数组并用批量推理方式处理布局、公式识别等任务,这些操作本身就会消耗大量CPU资源,尤其在GPU不可用或未配置时表现更明显。
建议检查容器内PyTorch的CUDA可用性、环境变量和Docker参数是否一致,确认日志中模型初始化和推理阶段是否分配到GPU。如果确认GPU可用但CPU依然高负载,可以尝试单独跑OCR最小脚本排查,或调整批量参数(如MINERU_MIN_BATCH_INFERENCE_SIZE、OCR_DET_BASE_BATCH_SIZE)来缓解瞬时CPU压力。
详细原理和排查方法可参考相关讨论:讨论1、讨论2、PR说明。
To reply, just mention @dosu.
S…