news 2026/4/30 1:49:39

手写最基础的大模型推理并使用Profile监控GPU性能消耗情况

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手写最基础的大模型推理并使用Profile监控GPU性能消耗情况

torch.profiler来监控大模型推理,这样可以得到GPU/CPU 使用情况、时间消耗、内存占用,比简单的psutil更精确。下面完整示例:


importtorchfromtransformersimportAutoModelForCausalLM,AutoTokenizerimporttime# 1️⃣ 模型和 tokenizermodel_name="distilgpt2"tokenizer=AutoTokenizer.from_pretrained(model_name)model=AutoModelForCausalLM.from_pretrained(model_name)device="cuda"iftorch.cuda.is_available()else"cpu"model.to(device)# 输入 promptprompt="Hello, I am a small language model. I can"inputs=tokenizer(prompt,return_tensors="pt").to(device)# 2️⃣ 使用 torch.profiler 监控推理withtorch.profiler.profile(schedule=torch.profiler.schedule(wait=1,warmup=1,active=2,repeat=1),on_trace_ready=torch.profiler.tensorboard_trace_handler("./log"),record_shapes=True,profile_memory=True,with_stack=True)asprof:# 模拟多步推理,方便 profiler 捕捉forstepinrange(4):outputs=model.generate(**inputs,max_length=50,do_sample=True,temperature=0.7,top_k=50,top_p=0.95,no_repeat_ngram_size=2)prof.step()# 标记 step,方便分析# 3️⃣ 打印统计信息print(prof.key_averages().table(sort_by="self_cpu_time_total",row_limit=20))# 4️⃣ TensorBoard 查看print("Profiler traces saved to ./log, run:")print("tensorboard --logdir=./log")

✅ 功能说明

  1. Profiler 配置
  • record_shapes=True→ 记录每个操作的 tensor 形状
  • profile_memory=True→ 记录显存/内存占用
  • with_stack=True→ 打印调用堆栈,定位耗时操作
  1. Schedule
schedule=torch.profiler.schedule(wait=1,warmup=1,active=2,repeat=1)
  • wait:等待 step 数不记录
  • warmup:热身 step,不计入统计
  • active:记录 step 数
  • repeat:重复几次 schedule
  • 用于多步生成或批量生成时统计更准确
  1. Profiler 输出
  • prof.key_averages()→ CPU/GPU 每个操作耗时、显存消耗
  • 可以排序(self_cpu_time_total/cuda_time_total)找到瓶颈
  1. TensorBoard 可视化
tensorboard--logdir=./log
  • 可以看到每步操作的 GPU/CPU 时间、内存曲线
  • 直观分析模型推理性能

💡优化建议

  • 如果模型更大(7B+),可以结合torch.autocast("cuda")做混合精度,节省显存并提升速度:
withtorch.autocast(device_type="cuda",dtype=torch.float16):outputs=model.generate(...)
  • 可以在 profiler 的on_trace_ready回调中写自定义分析,比如打印每层显存占用。

访问

https://ui.perfetto.dev/#!/viewer?local_cache_key=0-json


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

上海物联网应用开发平台选型指南:架构机制与工程落地的核心考量

上海作为国内工业互联网和智能制造的重要集聚地,物联网应用开发需求在近几年持续增长。从制造业产线监控、仓储物流追踪到楼宇能耗管理,涉及的技术层次远比普通业务系统复杂。很多企业在选型时关注的往往是"能不能做",而真正决定项…

作者头像 李华
网站建设 2026/4/30 1:41:18

量子计算噪声挑战与零噪声外推技术解析

1. 量子计算中的噪声挑战与误差缓解技术概述在当前的量子计算研究中,噪声问题一直是制约量子算法实际应用的主要瓶颈之一。量子比特与环境的相互作用会导致量子态的退相干,使得计算结果偏离理论预期。特别是在处理复杂量子系统(如多体问题&am…

作者头像 李华
网站建设 2026/4/30 1:38:58

口播数字人视频制作教程:新手也能快速上手变现

在短视频内容爆发的当下,口播数字人视频凭借低成本、高效率的优势,成为创作者和企业的新选择。无论是知识分享、产品介绍还是资讯传递,口播数字人都能稳定输出内容。本文带你掌握口播数字人视频的制作方法,轻松入门并实现变现。一…

作者头像 李华
网站建设 2026/4/30 1:32:21

AI Agent如何重构跨境物流的决策?

传统的经验主义正在物流行业加速失效。当MSC(地中海航运)宣布航线大幅变更时,大多数货代从业者的第一反应是翻看通讯录或等待航司通知。但在生成式AI时代,这种‘被动响应’模式正是利润流失的根源。未来的物流竞争,不再…

作者头像 李华