「炼丹」师的福音!支持AMD GPU,PyTorch 1.8来了!

简介: PyTorch1.8发布,整体来看,本次更新涵盖1.7版本发布以来,共计3000多次Github提交,包括编译、代码优化、科学计算前端 API 以及通过 pytorch.org 提供的二进制文件支持AMD ROCm。

微信图片_20220112174057.png


PyTorch是一个开源的Python机器学习库。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,用于自然语言处理等应用程序。


微信图片_20220112174100.jpg


近日,Facebook发布了PyTorch 1.8新版本,加入了对AMD ROCm的支持,可以不用去配置Docker在原生环境下运行。


微信图片_20220112174103.png


其中一些重大更新包括:


  • 支持通过 torch.fx进行函数转换;

  • 增加和调整 API以支持 FFT( torch.fft )、线性代数函数( torch.linalg )

  • 添加了复杂张量自动求导(autograd)的支持,并提升了矩阵计算 hessian 和 jacobian 的能力;

  • 对分布式训练进行了重大更新和改进,包括:改进 NCCL 可靠性,支持管道并行,RPC 分析,支持添加梯度压缩的通讯 钩子。


微信图片_20220112174104.png


在PyTorch 1.8版本中,官方对一些PyTorch库也进行了相应的更新,主要包括 TorchCSPRNG、TorchVision、TorchText 和 TorchAudio。


PyTorch 1.8版本中的功能分为稳定版 (Stable)、测试版 (Beta) 和原型版 (Prototype)。


新增及更新 API


新增及更新 API 包括:与 NumPy 兼容的额外 API,及在推理和训练时方面,提高代码性能的额外 API。 PyTorch 1.8 主要更新功能简介:


  • [稳定版] Torch.fft 支持高性能 NumPy 中的 FFT

实现了 NumPy np.ft 功能的同时,还支持硬件加速和 autograd


  • [测试版] torch.linalg 将支持 NumPy 中的线性代数函

为常见的线性代数运算提供与 NumPy 类似的支持,支持 Cholesky 分解、 行列式、特征值等功能。


  • [测试版] 利用 FX 进行 Pthon 代码转换。


微信图片_20220112174106.png


 增强分布式训练


 PyTorch 1.8支持稳定的异步错误/超时处理,以提高 NCCL 稳定性; 


此外,还增加了对管道并行的支持,可将数据拆解成更小的块以提高并行计算效率。 并可以通过 DDP 中的通讯钩子进行梯度压缩,用于控制如何在workers之间同步梯度。 


此外,PyTorch 1.8 还增加了一些 prototype 特性,具体如下:


  • ZeroRedundancyOptimizer:有助于减少每个线程的内存占用;


  • 进程组 NCCL 发送/接收:允许用户在 Python 层(而非 C++ 层)实现集合操作;


  • RPC 中用 TensorPipe 支持 CUDA:为使用 PyTorch RPC 和多 GPU 机器的用户带来速度提升;


  • 远程模块:允许用户像操作本地模块那样操作远程 worker 上的模块。


PyTorch 移动端


 本次更新发布了图像分割模型DeepLabV3在安卓和IOS,能更好地帮助新用户将 PyTorch 模型部署在移动端。 


PyTorch 移动端新增教程包括:


  • iOS 端用 DeepLabV3 进行图像分割


  • Android 端用 DeepLabV3 进行图像分割


微信图片_20220112174108.png


同时为老用户提供开发工具,让其更得心应手地用 PyTorch 进行移动端开发。


微信图片_20220112174110.png


 性能优化工具


 新增测试版benchmark utils ,使用户能够更轻松地监控模型性能。还开放了一个自动量化 API,能改进 Eager Mode Quantization。


  • Benchmark utils

Benchmark utils 允许用户进行精确的性能测量,并提供组合工具,帮助制定基准和进行后期处理。


  • FX Graph Mode Quantization

新增的自动量化 API,它通过增加函数支持和自动化量化过程,改进 Eager Mode Quantization。 


硬件支持


 PyTorch 1.8 版本新增了两个 测试版本特性 


  • 强化 PyTorch Dispatcher 的能力,使其适应 C++ 中后端开发

支持用户在 pytorch/pytorch repo 之外创建新的树外设备,并与本地 PyTorch 设备保持同步。 


  • AMD GPU 二进制文件现已推出

新增对 ROCm wheel 的支持。

需要注意的是,PyTorch 1.8 仅在 Linux 系统中支持 AMD ROCm。

 

微信图片_20220112174112.png


参考资料:https://www.phoronix.com/scan.php?page=news_item&px=PyTorch-1.8-Released

https://pytorch.org/blog/pytorch-1.8-released/

https://twitter.com/cHHillee/status/1367621538791317504

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
6月前
|
缓存 并行计算 PyTorch
PyTorch CUDA内存管理优化:深度理解GPU资源分配与缓存机制
本文深入探讨了PyTorch中GPU内存管理的核心机制,特别是CUDA缓存分配器的作用与优化策略。文章分析了常见的“CUDA out of memory”问题及其成因,并通过实际案例(如Llama 1B模型训练)展示了内存分配模式。PyTorch的缓存分配器通过内存池化、延迟释放和碎片化优化等技术,显著提升了内存使用效率,减少了系统调用开销。此外,文章还介绍了高级优化方法,包括混合精度训练、梯度检查点技术及自定义内存分配器配置。这些策略有助于开发者在有限硬件资源下实现更高性能的深度学习模型训练与推理。
1032 0
|
6月前
|
机器学习/深度学习 并行计算 PyTorch
英伟达新一代GPU架构(50系列显卡)PyTorch兼容性解决方案
本文记录了在RTX 5070 Ti上运行PyTorch时遇到的CUDA兼容性问题,分析其根源为预编译二进制文件不支持sm_120架构,并提出解决方案:使用PyTorch Nightly版本、更新CUDA工具包至12.8。通过清理环境并安装支持新架构的组件,成功解决兼容性问题。文章总结了深度学习环境中硬件与框架兼容性的关键策略,强调Nightly构建版本和环境一致性的重要性,为开发者提供参考。
2858 64
英伟达新一代GPU架构(50系列显卡)PyTorch兼容性解决方案
|
5月前
|
人工智能 并行计算 监控
在AMD GPU上部署AI大模型:从ROCm环境搭建到Ollama本地推理实战指南
本文详细介绍了在AMD硬件上构建大型语言模型(LLM)推理环境的全流程。以RX 7900XT为例,通过配置ROCm平台、部署Ollama及Open WebUI,实现高效本地化AI推理。尽管面临技术挑战,但凭借高性价比(如700欧元的RX 7900XT性能接近2200欧元的RTX 5090),AMD方案成为经济实用的选择。测试显示,不同规模模型的推理速度从9到74 tokens/秒不等,满足交互需求。随着ROCm不断完善,AMD生态将推动AI硬件多元化发展,为个人与小型组织提供低成本、低依赖的AI实践路径。
1708 1
在AMD GPU上部署AI大模型:从ROCm环境搭建到Ollama本地推理实战指南
|
7月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
495 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
8月前
|
机器学习/深度学习 人工智能 并行计算
Unsloth:学生党福音!开源神器让大模型训练提速10倍:单GPU跑Llama3,5小时变30分钟
Unsloth 是一款开源的大语言模型微调工具,支持 Llama-3、Mistral、Phi-4 等主流 LLM,通过优化计算步骤和手写 GPU 内核,显著提升训练速度并减少内存使用。
1050 3
Unsloth:学生党福音!开源神器让大模型训练提速10倍:单GPU跑Llama3,5小时变30分钟
|
8月前
|
存储 机器学习/深度学习 PyTorch
PyTorch Profiler 性能优化示例:定位 TorchMetrics 收集瓶颈,提高 GPU 利用率
本文探讨了机器学习项目中指标收集对训练性能的影响,特别是如何通过简单实现引入不必要的CPU-GPU同步事件,导致训练时间增加约10%。使用TorchMetrics库和PyTorch Profiler工具,文章详细分析了性能瓶颈的根源,并提出了多项优化措施
329 1
PyTorch Profiler 性能优化示例:定位 TorchMetrics 收集瓶颈,提高 GPU 利用率
|
机器学习/深度学习 并行计算 PyTorch
GPU 加速与 PyTorch:最大化硬件性能提升训练速度
【8月更文第29天】GPU(图形处理单元)因其并行计算能力而成为深度学习领域的重要组成部分。本文将介绍如何利用PyTorch来高效地利用GPU进行深度学习模型的训练,从而最大化训练速度。我们将讨论如何配置环境、选择合适的硬件、编写高效的代码以及利用高级特性来提高性能。
2051 1
|
并行计算 PyTorch 算法框架/工具
【Pytorch】查看GPU是否可用
本文提供了使用PyTorch检查GPU是否可用的方法,包括查看PyTorch版本、编译时使用的CUDA版本以及当前CUDA是否可用于PyTorch。
1427 2
|
20天前
|
机器学习/深度学习 数据采集 人工智能
PyTorch学习实战:AI从数学基础到模型优化全流程精解
本文系统讲解人工智能、机器学习与深度学习的层级关系,涵盖PyTorch环境配置、张量操作、数据预处理、神经网络基础及模型训练全流程,结合数学原理与代码实践,深入浅出地介绍激活函数、反向传播等核心概念,助力快速入门深度学习。
73 1
|
5月前
|
机器学习/深度学习 PyTorch API
PyTorch量化感知训练技术:模型压缩与高精度边缘部署实践
本文深入探讨神经网络模型量化技术,重点讲解训练后量化(PTQ)与量化感知训练(QAT)两种主流方法。PTQ通过校准数据集确定量化参数,快速实现模型压缩,但精度损失较大;QAT在训练中引入伪量化操作,使模型适应低精度环境,显著提升量化后性能。文章结合PyTorch实现细节,介绍Eager模式、FX图模式及PyTorch 2导出量化等工具,并分享大语言模型Int4/Int8混合精度实践。最后总结量化最佳策略,包括逐通道量化、混合精度设置及目标硬件适配,助力高效部署深度学习模型。
683 21
PyTorch量化感知训练技术:模型压缩与高精度边缘部署实践

热门文章

最新文章

推荐镜像

更多