当前位置: 首页 > news >正文

python打卡day34@浙大疏锦行

知识点回归:

  1. CPU性能的查看:看架构代际、核心数、线程数
  2. GPU性能的查看:看显存、看级别、看架构代际
  3. GPU训练的方法:数据和模型移动到GPU device上
  4. 类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)

①CPU性能查看 :

- 架构代际: cat /proc/cpuinfo 查看型号和flags
- 核心/线程数: lscpu 或Python中 os.cpu_count()

②GPU性能查看 :

import torch
print(torch.cuda.get_device_name(0))  # 型号
print(torch.cuda.get_device_capability(0))  # 计算能力
print(torch.cuda.get_device_properties(0).total_memory/1e9)  # 显存(GB)

③GPU训练方法 :

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = Model().to(device)
data = data.to(device)

④类的 __call__ 方法 :

- 当类实现 __call__ 时,实例可以像函数一样调用
- self.fc1(x) 有效是因为PyTorch的 nn.Module 实现了 __call__ ,其内部会调用 forward()

 实验现象解释:

一、GPU-CPU交互特性 :

- loss.item() 确实需要同步,但现代GPU有:
  - 异步执行能力(计算和传输可重叠)
  - 并行流水线(下一个计算可提前开始)

二、瓶颈分析 :

# 典型训练循环中的时间分布
for epoch in range(epochs):# 数据加载时间(CPU)  ← 常被忽视的瓶颈# GPU计算时间# 同步记录时间(约0.1-1ms/次) # 其他开销(梯度清零等)

三、实验数据解读 :

- 记录次数从200→10次(20倍变化),但时间仅差0.69秒(6.6%)
- 说明:
  - 记录操作本身耗时占比极小(<1ms/次)
  - 主要时间消耗在数据加载和GPU计算

四、验证方法建议 :

# 精确测量记录操作耗时
import time
record_times = []
for _ in range(1000):start = time.perf_counter()losses.append(loss.item())  # 测试单次记录耗时record_times.append(time.perf_counter() - start)
print(f"平均记录耗时:{sum(record_times)/len(record_times)*1e6:.2f}微秒")

相关文章:

  • md5升级scram-sha-256认证
  • 文档结构化专家:数字化转型的核心力量
  • 架构师论文《论软件可靠性模型的设计与实现》
  • CAD标注样式如何设置?详细教程来了
  • 解锁内心的冲突:神经症冲突的理解与解决之道
  • 某某观鸟记录(rsa加密、MD5加密)返回数据AES解密逆向分析
  • 回溯算法:解锁多种问题的解决之门
  • 前端可视化
  • 实用蓝牙耳机哪款好?先做好使用场景分析!
  • 爬虫IP代理技术深度解析:场景、选型与实战应用
  • 认知偏差:你的思维如何在工作中给你设置障碍以及如何克服它们
  • 基于SpringBoot的网上租赁系统设计与实现
  • 一个使用布隆过滤器来做幂等性校验的例子
  • leetcode513. 找树左下角的值:层序遍历中的深度与顺序控制之道
  • “转人工客服”,少打弯弯绕!
  • 投资策略规划最优决策分析
  • leetcode hot100:十一、解题思路大全:回溯(全排列、子集、电话号码的字母组合、组合总和、括号生成、单词搜索、分割回文串、N皇后)
  • lanqiaoOJ 4330:欧拉函数模板
  • UG903 (v2024.2)的中文版
  • 计算机视觉(CV)中的视觉定位与外观检测技术解析
  • 无锡网站建设专家无锡网站制作/河北网站推广公司
  • 全网推广代运营/应用关键词优化
  • 做网站一定要购买虚拟主机吗/国际新闻最新消息美国
  • 免费咨询身高问题/沈阳seo关键词
  • 网站建设工作室介绍范文/软文形式推广产品
  • 南宁网站公司/市场调研报告1000字