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

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}微秒")

http://www.xdnf.cn/news/8520.html

相关文章:

  • C++线程池的使用
  • 力扣 128.最长连续序列
  • 缓存和数据库一致性问题
  • 对于geoserver发布数据后的开发应用
  • MYSQL之复合查询
  • 基于51单片机和8X8点阵屏、独立按键的飞行躲闪类小游戏
  • wordpress上传图片时出现服务器无法处理图片
  • Vue3 + Element Plus表格筛选样式设置
  • ES6 哈希数据结构
  • 【maxcompute】阿里maxcompute Python开发个人经验汇总
  • 为何在VMware中清理CentOS虚拟机后,本地磁盘空间未减少的问题解决
  • 工业RTOS生态重构:从PLC到“端 - 边 - 云”协同调度
  • PCIe Gen3 phy(编解码,token相关)
  • 谢飞机的Java面试奇遇:AIO、BIO、NIO与Netty深度解析
  • openEuler 22.03安装zabbix7 LTS(容器化部署)
  • ajax中get和post的区别,datatype返回的数据类型有哪些?
  • STM32 SPI通信(硬件)
  • 2025 最新教程:注册并切换到美区 Apple ID
  • 3dczml时间动态图型场景
  • 怎么判断一个Android APP使用了taro 这个跨端框架
  • 自制操作系统day9内存管理(cache、位图、列表管理、内存的释放)(ai辅助整理)
  • Web前端开发:JavaScript的使用
  • 【软件安装】Windows操作系统中安装mongodb数据库和mongo-shell工具
  • 从零入门:Google Cloud Platform (GCP) 基础架构与核心服务全解析
  • 推荐一款滴滴团队开源流程图编辑框架logic-flow
  • 禅道——安装PHP的ioncube扩展
  • 101 alpha_59
  • 精度不够?光纤激光尺0.2ppm误差解锁微米级制造
  • 粗糙表面生成程序及模拟方法
  • PCB设计实践(二十六)贴片电容与插件电容的全面解析:差异、演进与应用场景