You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PyTorch DataLoader仅一个进程为R状态,其余均为S状态?

问题:PyTorch多进程数据加载CPU利用率异常

问题简述

我使用PyTorch数据加载库并行加载数据训练深度学习模型,通过htop查看CPU状态时发现:多个运行同一Python脚本的进程里,仅一个处于R(运行/可运行)状态,CPU占用率150%,其余均处于S(可中断睡眠)状态,每个仅占用约8%CPU。

详细场景

我正在训练一个带有多辅助任务的VQA模型,数据包含列表、numpy数组、字典及图像,由数据集的__getitem__函数按需获取,供DataLoader进程使用。通过htop和nvtop观察到仅一个进程处于R状态,其余全为S状态。

本次训练使用两个训练DataLoader,通过自定义函数完成合并;同时构建了嵌套数据集层级(基于自定义数据集类),叶子原子数据集为自定义实现。数据从磁盘加载至内存并做预处理的逻辑分布在多个函数中。

额外运行信息

本次运行训练脚本时指定--num-workers=3,脚本通过Jupyter Notebook单元格的!语法调用,运行在tmux终端环境中。

我的疑问:是否存在操作不当导致该CPU利用率异常?如何让所有DataLoader进程保持R状态、CPU占用率约100%,充分发挥PyTorch并行加载的能力?


内容的提问来源于stack exchange,提问作者Pablo Messina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:01:45