09|使用GPU优化训练性能
Sebastian Raschka

在本课程的最后一部分,我们将探讨如何利用 GPU,相较于常规 CPU,GPU 将加速深度神经网络训练。首先,我们将介绍 PyTorch 中 GPU 计算的主要概念。然后,我们将在单个 GPU 上训练一个模型。最后,我们将探讨使用多个 GPU 进行分布式训练。
PyTorch 在 GPU 设备上的计算
正如你看到的,将第 07 讲的训练循环修改为可选 GPU 运行模式其实相当简单,仅需改动三行代码即可实现。
在进行代码修改之前,理解 PyTorch 中 GPU 计算的核心概念至关重要。首先需要明确“设备”(device)这一概念:在 PyTorch 中,设备是执行计算和存储数据的载体,CPU 和 GPU 都是典型的设备类型。PyTorch 张量总是驻留在特定设备上,其所有运算也将在同一设备上执行。
让我们通过实际代码来验证这一点。假设你已按照第 01 讲“安装 PyTorch”中的说明安装了支持 GPU 的 PyTorch 版本,我们可以通过以下代码确认当前运行环境是否支持 GPU 计算:
结果是:
假设我们现在有两个张量需要进行加法运算——默认情况下,这个计算过程会在 CPU 上执行:
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. PyTorch中的GPU计算核心概念是设备,可以在CPU和GPU上执行计算和存储数据。 2. 通过`.to()`方法可以将张量转移到GPU上执行计算,并且所有张量必须位于同一设备上,否则计算将失败。 3. 单个GPU训练模型相对简单,只需将张量传输到同一个GPU设备上,PyTorch会处理其余部分。 4. 在训练循环中,可以通过修改代码使其在GPU上运行,从而获得性能提升,尤其对于深度神经网络的训练。 5. 分布式训练是指将模型训练任务分配到多个GPU和多台机器上并行执行的技术方案,可以显著缩短训练时间。 6. PyTorch的DistributedDataParallel(DDP)策略通过将输入数据划分到可用设备上并同步处理这些数据子集,实现并行化训练。 7. DDP会在每个GPU上启动独立进程,每个进程都会接收并保存模型的完整副本,实现模型同步。 8. 使用DDP能显著提升数据集的处理速度,处理一个训练周期所需的时间可以比单GPU减少一半,随着GPU数量的增加而提升。 9. DDP无法在交互式Python环境中正常运行,需要作为脚本执行,而非在Jupyter等notebook界面中运行。 10. 需要使用额外的子模块、类和函数以及初始化和退出分布式训练模式来实现DDP训练。
该试读文章来自《1 小时入门 PyTorch:从张量到多 GPU 神经网络训练》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论