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

Windows系统Jupyter Notebook中PyTorch训练CPU使用率间歇性下降问题

PyTorch LSTM训练时CPU使用率间歇性下降至33%,拖慢训练速度

问题描述

在Windows 11的Jupyter Notebook中训练LSTM模型(共500轮),CPU使用率有时能达到100%(符合预期),但会莫名降至约33%,导致训练速度大幅变慢。

环境配置

Operating System: Windows 11
IDE: Jupyter Notebook
Python Version: Python 3.12.4
PyTorch Version: 2.3.1
CPU: 12th Gen Intel(R) Core(TM) i7-12700

已尝试的解决措施

  • 线程配置:已将PyTorch线程数设置为CPU最大可用核心数:
    import torch
    torch.set_num_threads(n)  # n为CPU核心数
    
  • 进程检查:确认无其他高资源占用进程同时运行。

咨询问题

  • 导致CPU使用率间歇性下降的原因可能是什么?
  • 有哪些额外配置或步骤可确保CPU利用率稳定?
  • 这是否与Jupyter Notebook有关?脱离Jupyter运行脚本是否有帮助?

原因分析

  1. CPU架构特性:i7-12700是大小核架构(6性能核+8能效核),PyTorch线程调度可能出现偏移——当训练任务仅调度到能效核时,因能效核性能上限低,会出现整体使用率看似骤降的情况(33%刚好对应总核心数的1/3左右,大概率是只用到了部分核心)。
  2. 数据加载瓶颈:如果DataLoader的num_workers设置不合理,数据加载与训练流程未并行,模型训练完一轮等待新数据时,CPU会进入空闲状态,使用率下降。
  3. Windows电源管理:若系统电源模式不是“高性能”,系统可能动态降频或限制核心调用,导致CPU利用率波动。
  4. Jupyter IO阻塞:Jupyter实时输出日志、进度条时,会触发GIL(全局解释器锁)频繁切换,阻塞训练线程,拉低CPU使用率。

解决措施

  1. 优化线程与核心绑定:
    • 除设置torch.set_num_threads(n),还可绑定PyTorch到性能核,避免调度到能效核:
      import os
      # 针对12代酷睿,绑定到前6个性能核(核心编号0-5)
      os.sched_setaffinity(0, range(6))
      torch.set_num_threads(6)
      
    • 调整DataLoader参数,建议num_workers设为CPU核心数的一半或相等,同时开启pin_memory=True,消除数据加载瓶颈:
      from torch.utils.data import DataLoader
      dataloader = DataLoader(dataset, batch_size=32, num_workers=6, pin_memory=True)
      
  2. 调整系统设置:
    • 切换Windows电源选项到高性能模式,在电源计划高级设置中,将“处理器电源管理”的“最小/最大处理器状态”均设为100%,禁用动态降频。
  3. 优化训练流程:
    • 减少Jupyter实时输出频率,比如每10轮打印一次日志,避免IO阻塞。
    • 将训练代码保存为.py脚本,用Python直接运行——脱离Jupyter可消除GIL竞争和IO开销,大幅提升CPU利用率稳定性。
  4. 版本兼容性调整:Python 3.12属于较新版本,PyTorch 2.3.1对其支持可能存在细节问题,可尝试降级到Python 3.11并搭配对应版本的PyTorch,排查是否为版本适配问题。

关于Jupyter的影响

是的,Jupyter确实可能是诱因之一。Jupyter内核处理交互式输出时,会频繁触发GIL切换,干扰训练线程执行;且Jupyter进程优先级通常低于直接运行的Python脚本,系统资源调度会偏向其他任务。脱离Jupyter运行独立脚本,能消除这些干扰,大概率让CPU利用率更稳定。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:12:39