作者:张爱玲、杨占略 著
页数:217
出版社:清华大学出版社
出版日期:2024
ISBN:9787302673477
电子书格式:pdf/epub/txt
网盘下载地址:下载大模型动力引擎——PYTORCH性能与显存优化手册
内容简介
本书致力于探索如何在大规模深度学习模型训练中,第一限度地提高性能和优化显存使 用。本书面向深度学习从业者,尤其是希望深入了解并提升模型训练效率的工程师与研究 人员。随着深度学习模型和数据规模的迅速增长,如何高效利用硬件资源,减少训练时间, 成为当前AI系统工程的关键挑战。本书从硬件和软件的基础知识入手,逐步引导读者理解 和掌握PyTorch的优化技巧。内容涵盖从单机到分布式训练,从显存管理到性能分析的多种 优化策略,力求通过丰富的代码实例和深入的原理讲解,使读者能够在实践中灵活应用这些 方法。
作者简介
张爱玲,本科毕业于清华大学电子工程系,后在美国伊利诺伊大学香槟分校获得计算机科学硕士学位,是AI系统工程领域的资深技术专家。作为深度学习框架PyTorch核心团队成员,参与了多个关键组件的研发与优化工作。同时,她作为技术负责人主导了PyTorch/XLA和Taichi编译器等多个具有广泛影响力的开源项目。目前在工业界专注于大规模语言模型训练的基础设施开发与性能优化工作。
杨占略,清华大学本科,哥伦比亚大学硕士,资深技术专家。曾先后任职于苹果、百度、太极图形公司,分别从事深度学习推理框架、训练框架PaddlePaddle以及Taichi编译器的开发。现就职于大疆公司,聚焦于端侧模型优化、推理部署相关工作。
本书特色
了解如何实现大模型显存和性能优化大模型GPU显存优化一本通
目录
目录
第1章 欢迎来到这场大模型竞赛 1
1.1 模型规模带来的挑战 2
1.2 数据规模带来的挑战 3
1.3 模型规模与数据增长的应对方法 4
第2章 深度学习第一的硬件知识 6
2.1 CPU与内存 7
2.1.1 内存 7
2.1.2 CPU 9
2.2 硬盘 11
2.3 GPU 13
2.3.1 CPU的局限性 13
2.3.2 GPU的硬件结构 14
2.3.3 GPU编程模型及其硬件对应 18
2.3.4 GPU的关键性能指标 19
2.3.5 显存与内存间的数据传输 19
2.4 分布式系统 22
2.4.1 单机多卡的通信 22
2.4.2 多机多卡的通信 24
2.4.3 分布式系统的数据存储 24
第3章 深度学习第一的PyTorch知识 26
3.1 PyTorch 的张量数据结构 27
3.1.1 张量的基本属性及创建 27
3.1.2 访问张量的数据 28
3.1.3 张量的存储方式 29
3.1.4 张量的视图 32
3.2 PyTorch中的算子 33
3.2.1 PyTorch的算子库 33
3.2.2 PyTorch算子的内存分配 35
3.2.3 算子的调用过程 36
3.3 PyTorch的动态图机制 38
3.4 PyTorch的自动微分系统 41
3.4.1 什么是自动微分 41
3.4.2 自动微分的实现 42
3.4.3 Autograd 扩展自定义算子 46
3.5 PyTorch的异步执行机制 47
第4章 定位性能瓶颈的工具和方法 51
4.1 配置性能分析所需的软硬件环境 52
4.1.1 减少无关程序的干扰 52
4.1.2 提升PyTorch 程序的可重复性 53
4.1.3 控制GPU频率 58
4.1.4 控制CPU的性能状态和工作频率 59
4.2 精确测量程序运行时间 60
4.2.1 计量CPU程序的运行时间 60
4.2.2 程序预热和多次运行取平均 61
4.2.3 计量GPU程序的运行时间 62
4.2.4 精确计量GPU的运行时间 63
4.3 PyTorch性能分析器 64
4.3.1 性能分析 65
4.3.2 显存分析 66
4.3.3 可视化性能图谱 67
4.3.4 如何定位性
第1章 欢迎来到这场大模型竞赛 1
1.1 模型规模带来的挑战 2
1.2 数据规模带来的挑战 3
1.3 模型规模与数据增长的应对方法 4
第2章 深度学习第一的硬件知识 6
2.1 CPU与内存 7
2.1.1 内存 7
2.1.2 CPU 9
2.2 硬盘 11
2.3 GPU 13
2.3.1 CPU的局限性 13
2.3.2 GPU的硬件结构 14
2.3.3 GPU编程模型及其硬件对应 18
2.3.4 GPU的关键性能指标 19
2.3.5 显存与内存间的数据传输 19
2.4 分布式系统 22
2.4.1 单机多卡的通信 22
2.4.2 多机多卡的通信 24
2.4.3 分布式系统的数据存储 24
第3章 深度学习第一的PyTorch知识 26
3.1 PyTorch 的张量数据结构 27
3.1.1 张量的基本属性及创建 27
3.1.2 访问张量的数据 28
3.1.3 张量的存储方式 29
3.1.4 张量的视图 32
3.2 PyTorch中的算子 33
3.2.1 PyTorch的算子库 33
3.2.2 PyTorch算子的内存分配 35
3.2.3 算子的调用过程 36
3.3 PyTorch的动态图机制 38
3.4 PyTorch的自动微分系统 41
3.4.1 什么是自动微分 41
3.4.2 自动微分的实现 42
3.4.3 Autograd 扩展自定义算子 46
3.5 PyTorch的异步执行机制 47
第4章 定位性能瓶颈的工具和方法 51
4.1 配置性能分析所需的软硬件环境 52
4.1.1 减少无关程序的干扰 52
4.1.2 提升PyTorch 程序的可重复性 53
4.1.3 控制GPU频率 58
4.1.4 控制CPU的性能状态和工作频率 59
4.2 精确测量程序运行时间 60
4.2.1 计量CPU程序的运行时间 60
4.2.2 程序预热和多次运行取平均 61
4.2.3 计量GPU程序的运行时间 62
4.2.4 精确计量GPU的运行时间 63
4.3 PyTorch性能分析器 64
4.3.1 性能分析 65
4.3.2 显存分析 66
4.3.3 可视化性能图谱 67
4.3.4 如何定位性