【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

PyTorch 1.12 发布,支持在 Mac 上进行加速训练并新增 TorchArrow 库

  • 2022-07-24
  • 本文字数:1102 字

    阅读完需:约 4 分钟

PyTorch 1.12发布,支持在Mac上进行加速训练并新增TorchArrow库

深度学习开源框架 PyTorch 发布了1.12版本,该版本支持在苹果 Sillicon 芯片电脑上进行 GPU 加速训练,并提供了一个新的数据预处理库 TorchArrow,以及对其他库和 API 的更新。


PyTorch 团队在最近的一篇博文中介绍了该版本的主要特性。支持使用苹果的 Metal Performance Shaders(MPS)在苹果 Sillicon GPU 上培训,比基于 CPU 的训练速度高达 20 倍。此外,该版本还提供了对 Core 和 Domain PyTorch 库 M1 版本的支持。TorchData库的 DataPipes 现在向后兼容旧的 DataLoader 类,该版本还支持 TorchData 与 AWS S3 的集成。TorchArrow库提供了 Pandas 风格的 API 和基于 Apache Arrow 的内存数据格式,可以轻松加入其他 PyTorch 库,包括 DataLoader 和 DataPipe。总的来说,新版本包含了自 1.11 版本以来来自 433 个贡献者的 3100 多个提交。


在 1.12 版本发布之前,PyTorch 只支持 M1 Mac 电脑上基于 CPU 的训练。在苹果公司 Metal 团队的帮助下,PyTorch 现在包含了一个基于 MPS 的后端,具有处理器特定的内核,并将 PyTorch 模型计算图映射到 MPS 图框架上。Mac 的内存架构允许 GPU 直接访问内存,这不仅提高了整体性能,而且可以使用更大的批次和更大的模型进行训练。


除了支持苹果 Sillicon 芯片,PyTorch 1.12 还包括了其他几个性能增强。TorchScript 是 PyTorch 运行时可移植性模型的中间表示,现在有了一个新的层融合后端,叫作NVFuser,它比之前的 NNC 更快,支持更多操作。对于计算机视觉模型,该版本实现了在 CPU 上使用的 Channels-Last 数据格式,比 Channels-First 提高了 1.8 倍的推断性能。该版本还包括对 bfloat16 降精度数据类型的增强,在 Intel 至强处理器上提供高达 2.2 倍的性能提升。


该版本增加了几个新特性和 API。对于需要复数的应用程序,PyTorch 1.12 增加了对复杂卷积和 complex32 数据类型的支持,以降低计算精度。该版本“显著改进”了对前向模式自动微分的支持,还提供了一个新的 DataLoader2 类的原型实现,这是一个用于执行 DataPipe 图的轻量级数据加载器类。


在新版本中,Fully Sharded Data Parallel(FSDP)API 从原型版本进入 Beta 版本。FSDP 通过在一组 Worker 中分布模型权重和梯度来支持训练大型模型。FSDP 的新特性包括更快的模型初始化、混合精度的细粒度控制、Transformer 模型的增强训练,以及支持用一行代码修改分片策略的 API。


人工智能研究员 Sebastian Raschka 在推特上介绍了他最喜欢的特性。一位用户回复说:


新版本似乎破坏了一些向后兼容性。例如,HuggingFace 的 OpenAIs Clip 模型现在会产生 CUDA 错误。


HuggingFace 开发者 Nima Boscarino 回复说,HuggingFace 很快就会有解决方案


PyTorch 1.12的代码和发布说明可以在 GitHub 上找到。


原文链接

PyTorch 1.12 Release Includes Accelerated Training on Macs and New Library TorchArrow

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2022-07-24 08:002195

评论

发布
暂无评论
发现更多内容

工业4.0时代IIoT存储面临哪些挑战

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

微信架构图

Johnny

#架构实战营

Java中的悲观锁和乐观锁是什么意思?其分类依据是啥?

wljslmz

Java 乐观锁 悲观锁 9月月更

浅谈云原生安全

HummerCloud

云原生 云安全 云原生安全

腾讯云搭建wordpress网站超详细介绍

乌龟哥哥

9月月更

「产品运营」研发效能之DevOps平台如何运营?

laofo

DevOps cicd 研发效能 持续交付 工程效率

开发者有话说|我想给你讲一个故事

石云升

个人成长 9月月更

《MySQL入门很轻松》第4章:数据表中存放的数据类型

乌龟哥哥

9月月更

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

数据价值平台化输出:数据服务平台

Taylor

数据中台 接口管理 API接口管理 数据服务 数据服务平台

Python之斐波那契数列的实现

智趣匠

Python 9月月更 斐波那契数列

第1章:初识数据库与MySQL----数据库基本概念

乌龟哥哥

9月月更

启动 Hello Spring Security Boot 应用

HoneyMoose

部署华为云DWS过程

乌龟哥哥

9月月更

《MySQL入门很轻松》第5章:数据完整性及其分类

乌龟哥哥

9月月更

GaussDB(DWS)如何实现实时,批量和交付式查询一站式开发

乌龟哥哥

9月月更

大数据ELK(九):使用VSCode测试分词器

Lansonli

ELK 10月月更

(WebFlux)004、WebFilter踩坑记录

编号94530

Spring Boot WebFlux Reactor3 WebFilter

《MySQL入门很轻松》第2章:MySQL管理工具介绍

乌龟哥哥

9月月更

从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析

乌龟哥哥

9月月更

阿里云搭建halo博客

乌龟哥哥

9月月更

测试

乌龟哥哥

9月月更

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

Spring Security 在 Servlet 的作用区域

HoneyMoose

Python之简易计算器的制作

智趣匠

Python 9月月更 简易计算器

Python之鸡兔同笼

智趣匠

9月月更 Python语法 鸡兔同笼

14个你必须要知道的ubuntu快捷键

乌龟哥哥

9月月更

2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true

福大大架构师每日一题

极速体验SpringCloud Gateway

程序员欣宸

Java SpringCloud SpringCloud Gateway 9月月更

linxu入门指令

乌龟哥哥

9月月更

问:React的setState为什么是异步的?

beifeng1996

React

PyTorch 1.12发布,支持在Mac上进行加速训练并新增TorchArrow库_数据库_Anthony Alford_InfoQ精选文章