NanoGPT的BenchMarking.py

1.Benchmarking是一种评估和比较性能的过程。在深度学习领域,它通常涉及对模型的训练速度、推理速度、内存占用等指标进行测量,以便评估不同模型、不同硬件配置或者不同软件版本之间的性能差异。

  • 例如,当你尝试比较两个不同架构的模型(如 ResNet 和 EfficientNet)在相同数据集和硬件条件下的训练效率时,就可以进行 benchmarking。通过记录每个模型的训练时间、每个 epoch 的处理时间、每秒处理的样本数等指标,来判断哪个模型在这种特定场景下更高效。也可以用于比较同一模型在不同硬件(如 CPU 和 GPU)上的性能表现,从而为选择合适的硬件部署模型提供依据。
  1. Pytorch2.0编译
复制代码
compile = True # use PyTorch 2.0 to compile the model to be faster(Torch.compile())

Pytorch 2.0 使用了JIT编译思想。

在传统的解释执行中,代码被 逐行被解释器执行,每次执行都要进行语法分析、字节码转换等操作,带来性能开销。在传统的编译执行 中,代码在运行 前会被完全编译成机器码,虽然执行效率高,但是编译过程耗时且缺乏灵活性。

JIT结合了两者的优点,它先将源代码编译成一种中间表示(Intermediate Representation, IR),然后在程序运行时根据需要将部分IR编译成机器码并缓存起来。后续再次 执行相同代码时,可以直接使用缓存的机器码,从而提高执行效率。

3.关于随机数种子

torch.manual_seed(seed)是设置Pytorch在CPU上的随机数 种子,而torch.cuda.manual_seed(seed)是设置在GPU(这里是cuda)上的随机数种子。

4.关于TF32

TensorFloat-32(TF32)是一种混合精度浮点格式,旨在在 NVIDIA 的 Ampere 架构 GPU 上加速矩阵乘法和深度神经网络操作,同时保持与 FP32(单精度浮点数)相当的数值精度。

复制代码
torch.backends.cuda.matmul.allow_tf32 = True # allow tf32 on matmul
torch.backends.cudnn.allow_tf32 = True # allow tf32 on cudnn

第一行代码允许在矩阵乘法上使用TF32精度,第二行允许在cuDNN(NVIDIA 的深度神经网络库)上使用TF32精度。

5.上下文处理器(context managger)

  • nullcontext() 是一个上下文管理器,表示不执行任何操作。当设备类型是 CPU 时,使用 nullcontext(),即不启用 AMP。

  • torch.amp.autocast(device_type=device_type, dtype=ptdtype) 是一个上下文管理器,用于在支持的设备(如 GPU)上启用自动混合精度。它会自动将操作转换为指定的精度(ptdtype),以加速计算并减少内存占用。

自动混合精度(AMP)的工作原理:

  • AMP 是一种技术,它允许在训练深度学习模型时自动混合使用不同的精度(如 FP32 和 FP16 或 BF16(Brain Floating)),以提高计算效率并减少内存占用。

  • 在 GPU 上,特别是支持 Tensor Core 的 NVIDIA GPU,使用 FP16 或 BF16 可以显著加速矩阵乘法和卷积等操作,同时保持模型的数值稳定性。

  1. torch.cuda.synchronize() 是 PyTorch 中用于 CUDA 操作同步的函数。它主要用于确保所有在 GPU 上启动的异步操作在继续执行后续代码之前已完成。简而言之,它会阻塞 CPU 线程,直到所有已发出的 GPU 操作完成。
相关推荐
星越华夏6 小时前
计算机视觉:YOLOv12安装环境
人工智能·yolo·计算机视觉
Yolanda947 小时前
【人工智能】《从零搭建AI问答助手项目(九):Prompt优化》
人工智能·prompt
wj3055853787 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
小和尚同志7 小时前
深入使用 skill-creator:结合真实生产级实践
人工智能·aigc
DevSecOps选型指南7 小时前
安全419专访悬镜安全 | 穿越周期在 AI 浪潮中定义数字供应链安全新范式
人工智能
沪漂阿龙7 小时前
面试题详解:GraphRAG 全面解析——知识图谱增强 RAG、Local Search、Global Search、社区摘要、工程落地与评估指标一次讲透
人工智能·知识图谱
WangN27 小时前
Unitree RL Lab 学习笔记【通识】
人工智能·机器学习
haina20197 小时前
海纳AI亮相《科创中国》,解码招聘“智”变之路
人工智能·ai面试·ai招聘
阿星AI工作室8 小时前
刘润年中大课笔记:一句话说清AI落地之战的本质
大数据·人工智能·创业创新·商业
qingfeng154158 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信