news 2026/7/7 18:41:57

pythonstudy Day38

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pythonstudy Day38

GPU训练及类的call方法

@疏锦行


  1. “剩余时长(ETA)”本身就很难和记录次数线性对应

多数训练脚本的 ETA 计算方式是类似:

用最近若干 step 的平均耗时(滑动平均 / 指数平滑)

或用从 epoch 开始到现在的平均 step 耗时

然后 ETA = avg_step_time * remaining_steps

这种估计会把你“偶尔发生的额外开销”(比如每 N step 做一次 .item()、print、写日志、评估)平均摊薄。
当总 epoch=20000,而你记录次数只有 10/20/100/200 这种量级时,单次记录的开销如果是毫秒级~几十毫秒级,摊到每 step 上可能非常小,最后 ETA 的差异就会被平滑/抹掉,呈现出“差不多都 10 秒”。

  1. .loss.item() / tensor.item() 的同步是“结账式”的:频率越低,不一定越省时

你已经抓到关键:.item() 会把 GPU 上的标量拷回 CPU,而这会 强制同步(CPU 必须等 GPU 把当前队列里的 kernel 都跑完,才能拿到结果)。

但很多人忽略了:同步等待时间不是一个固定常数,而是取决于你同步那一刻 GPU 队列里“欠了多少账”。

记录很频繁(间隔小):你更频繁地“结账”,每次等的可能较短;

记录很不频繁(间隔大):GPU 可以异步跑很久,你以为“没同步所以更快”,但到你下一次 .item() 时,CPU 可能要一次性等更久(把之前积压的队列都跑完)。

所以同步的耗时分布会变成 少量大尖峰 vs 大量小尖峰。
而你记录的“剩余时长”往往是平滑后的平均值,它看到的是:尖峰被摊薄后差不多,自然就“不线性”。

  1. 你的训练瓶颈可能根本不在“记录”上(被其它项主导)

即使 .item() 有同步,整体耗时也常被这些主导:

DataLoader(CPU 解码/增强/IO/num_workers 不够、pin_memory 设置等)

GPU 计算本身(模型/输入大)

CUDA 内存分配/缓存、偶发 GC、日志写盘

进度条刷新(tqdm)、print flush、TensorBoard 写 event

当主耗时项远大于日志开销时,你把记录次数改 10 倍,ETA 也只会轻微波动,看起来“不成比例”。

  1. 你现在这组数差异很小,也可能是测量方式被“异步”骗了

如果你用 time.time() 直接包住训练 step,但 没在合适位置 torch.cuda.synchronize(),那么你测到的“step 用时”可能只是 CPU 发射 kernel 的时间,而不是 GPU 真正执行完的时间。
此时 ETA 的波动会更多来自同步点(比如 .item())的位置与平滑方式,而不是你以为的线性累积。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 17:31:09

IT圈的大实话!做运维不如卷网络安全,这可能是你转行的最后的机会

前言:金九银十里的运维转行潮​ 2025已经到了 “金九银十”的招聘季,我约了三个做运维的老伙计吃饭,饭桌上一半的话题都绕着 “辞职转行” 转。最让我感慨的是小张 —— 他在某集成商做运维 5 年,去年还跟我吐槽 “出差累但稳定”…

作者头像 李华
网站建设 2026/7/7 18:04:23

灵遁者诗歌集大象万镜——豆包版诗歌集

大象万镜——豆包版诗歌集第一辑:生活褶皱里的星子 1. 早餐的量子煎蛋的油星跳在瓷砖上像未被捕捉的量子——母亲的手悬在锅沿,腕上银镯碰响搪瓷碗,声音折进蛋黄半凝的纹路里我捏着吐司的指尖粘了粒芝麻,它反光时我看见去年暴雨里…

作者头像 李华
网站建设 2026/7/7 13:45:59

拓扑量子信息基元理论5点预言

第二十七章:拓扑量子信息基元理论5点预言拓扑量子信息基元理论(简称TQIT)虽然尚未完全成型,但基于其核心原则,我们可以推导出几个革命性的、可被未来实验验证的预言。这些预言主要分为两类:1) 对现有理论框…

作者头像 李华
网站建设 2026/7/6 20:27:48

灵遁者:我试图描述这场语言的雪崩,却成为雪崩的一部分

1. 【元诗之镜 自我指涉的漩涡】 这首诗关于它自身如何被写下。 词语在诞生前就已磨损,意象 在浮现时便走向消解。 我试图描述这场语言的雪崩, 却成为雪崩的一部分。 2. 【语法之镜 结构的崩塌】 主谓宾的秩序在燃烧,标点符号 叛逃…

作者头像 李华
网站建设 2026/7/7 9:50:15

基于PLC除尘设备控制系统的设计10.12

第二章 除尘设备控制系统的硬件构成 2.1 可编程控制器的特点 现代工业以快速智能自动化发展为主,PLC作为一种专用于工业控制的计算机,应用方面广泛,功能强大,操作方便,因此PLC控制系统相比于继电器控制系统和单片机控制…

作者头像 李华