首页 > 其他分享 >PyTorch大更新,编译代码速度暴增35倍!视觉模型一键部署,头显Quest 3可用

PyTorch大更新,编译代码速度暴增35倍!视觉模型一键部署,头显Quest 3可用

时间:2023-10-19 23:58:14浏览次数:41  
标签:头显 代码 torch compile PyTorch Quest ExecuTorch NumPy

前言 最近,在Pytorch发布会上,发布移动端Pytorch解决方案ExecuTorch,实现在移动端设备上大范围地部署AI工具,并推出最新版本Pytorch2.1,推理速度大幅提升。

本文转载自新智元

仅用于学术分享,若侵权请联系删除

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

CV各大方向专栏与各个部署框架最全教程整理

【CV技术指南】CV全栈指导班、基础入门班、论文指导班 全面上线!!

在刚刚召开的PyTorch大会上,PyTorch发布了一大波更新,把深度学习从业者们高兴坏了!

正式推出ExecuTorch。它可以让PyTorch在Arm、苹果和高通的处理器上运行,实现在移动端设备上大范围地部署AI工具。

伴随着这个更新,在可以预见的未来,手机,VR头显,汽车和可穿戴等移动设备将会全面AI化。

除此之外,Pytorch还宣布,torch.compile实现了对NumPy代码跟踪的支持,从而可以利用PyTorch的编译器生成高效的融合矢量化代码,而无需修改原始NumPy代码。

更重要的是,这次更新还允许通过在torch.device("cuda")下运行torch.compile来在CUDA上执行NumPy代码!

 

深度学习大佬Sebastian也证实,这次更新后,用PyTorch编译NumPy代码时速度暴增35倍!激动人心!

而就在前不久,PyTorch 2.1也正式发布了。

这个新版本在torch.compile、torch.distributed.checkpoint中提供自动动态形状(Automatic Dynamic Shape)支持,可以在多个队列上并行保存/加载分布式训练作业,以及torch.compile对NumPy API的支持。

此外,新版本还提供了多个性能方面的改进(例如CPU电感器改进、AVX512支持、缩放点积注意力支持)以及torch.export的原型版本、健全的全图捕获机制和torch.export基于量化。

除了新品的发布,业内各路大佬都会在大会上分享关于AI模型训练,AI开源的深度见解。

ExecuTorch让AI模型部署到全平台

在这次的PyTorch Conference上,最重要的内容就是ExecuTorch的发布。

ExecuTorch是一个面向移动端的PyTorch平台,提供基础设施来运行PyTorch 程序,支持从AR/VR,可穿戴设备到标准设备上iOS和Android移动部署。

ExecuTorch的主要目标之一是实现PyTorch程序更广泛的定制和部署功能。

官方宣称这套工具使机器学习开发人员能够用更加高效的方式对各种平台上的模型进行分析和调试。

PyTorch的联合创始人Soumith Chintala称:

ExecuTorch让PyTorch能够支持移动和其他边缘设备。它将为开发人员提供一条以前不存在的发展方向,能让这些设备进行小规模,高性能的运算,并让整个社区成员都能在这些设备上加速部署自己的程序,实在是令人兴奋!

ExecuTorch让深度学习开发人员能够以组件化的方式,在各种计算平台上从头构建自己的应用,在3个方面体现出了非常强的优势:

无与伦比的便携性

与各种计算平台兼容,从性能最强劲的手机到嵌入式系统都将获得支持。

令人赞叹的生产力

使开发人员能够使用相同的工具链和SDK,在各种平台上实现PyTorch模型的设计,调试以及部署,从而大大提高生产力。

前所未有的性能表现

由于任务执行时间比较短,并且可以利用完整硬件功能(包括通用CPU和专用处理器,例如NPU和DSP)和能力,最终就可以为用户提供无缝和高性能的体验。

在官方提供的Demo中,我们可以看到,在移动端,可以轻松部署深度学习的视觉模型。

如下图,可以在终端对图像进行语义分割,分割的效果虽然比不上使用GPU推理的结果,但是相信随着终端硬件的发展,其图像处理效果会有进一步的提升。

Meta已经对这项技术进行了验证,将其应用于最新一代VR头显Quest 3当中。

在PyTorch大会的主题演讲中,Meta软件工程师Mergen Nachin 详细介绍了新的ExecuTorch技术的全部内容及其重要性。

他指出,当今的人工智能模型正在从服务器扩展到边缘设备,例如移动、AR、VR和AR耳机、可穿戴设备、嵌入式系统和微控制器。

ExecuTorch通过提供PyTorch模型的端到端工作流程来交付优化的本机程序,解决了受限边缘设备的挑战。

Nachin解释说,ExecuTorch从标准PyTorch模块开始,但将其转换为exporter graph,然后通过进一步转换和编译来优化它以针对特定设备。

ExecuTorch的一个主要优势是可移植性,能够在移动和嵌入式设备上运行。

Nachin指出,ExecuTorch还可以通过跨不同目标使用一致的API和软件开发套件来帮助提高开发人员的工作效率。

Nachin表示,随着该技术现已作为PyTorch基金会的一部分开源,我们的目标是帮助行业协作解决将人工智能模型部署到各种边缘设备时的碎片化问题。

Meta相信ExecuTorch可以通过其优化且可移植的工作流程帮助更多组织利用设备上的人工智能。

在PyTorch大会的主题演讲中,Meta软件工程师Mergen Nachin详细介绍了新的ExecuTorch技术的全部内容及其重要性。

作为开源的PyTorch项目的一部分,ExecuTorch的目标是进一步推动这项技术,让世界迎来在移动设备上进行AI推理的新时代。

NumPy代码编译为C++/CUDA,提速35倍!

Quansight工程师在PyTorch 2.1中通过torch.compile实现了对NumPy代码跟踪的支持。

此功能利用PyTorch的编译器生成高效的融合矢量化代码,而无需修改原始NumPy代码。

它还允许通过torch.device("cuda")下的torch.compile运行来在CUDA上执行 NumPy代码。

那么,这项更新具体有多高效呢?在X(Twitter)上业界大佬Sebastian进行了测试:

他在观看Pytorch会议主题演讲之后,尝试了一下NumPy的torch.compile。

在MacBook上使用PyTorch编译NumPy代码时都能获得了大约35倍的加速,更别提对scikit-learn的影响了!

网友Anirudh Tulasi感叹道:哇,这些基准测试结果令人印象深刻!torch.compile在MacBook上如此显著地提高NumPy代码性能,真是令人震惊。这对scikit-learn等库的影响可能是革命性的。渴望看到更多的应用!

还有Ph.D说绝对需要尝试这个功能更新。

不过,在Pytorch发布会上,Sabastian还发现了一个小花絮,在新版本的Pytorch2.1其Python占比高达47.8%,比去年版本高了9.1%。

我们知道Python代码的执行效率是比C++要低很多的,然而新版本的执行速度比以前快好几倍。

一些网友表示不可思议,不敢相信自己的眼睛。

 

PyTorch2.1发布

本月初,官方发布了PyTorch2.1。PyTorch 2.1在torch.compile、torch.distributed.checkpoint中提供自动动态形状支持,用于在多个队列上并行保存/加载分布式训练作业,以及 torch.compile对NumPy API的支持。

此外,此版本还提供了许多性能改进(例如CPU电感器改进、AVX512支持、缩放点积注意力支持)以及torch.export的原型版本、健全的全图捕获机制和 torch.export基于量化。

除了2.1之外,官方还发布PyTorc域库的一系列测试版更新,包括TorchAudio和TorchVision。下面是最新稳定版本和更新的列表。

地址:https://pytorch.org/blog/new-library-updates/

参考资料:

https://www.linuxfoundation.org/blog/-pytorch-conference-2023-news?hss_channel=tw-776585502606721024

https://pytorch.org/blog/pytorch-edge/?utm_content=268296368&utm_medium=social&utm_source=twitter&hss_channel=tw-776585502606721024

 

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

其它文章

分享一个CV知识库,上千篇文章、专栏,CV所有资料都在这了

明年毕业,还不知道怎么做毕设的请抓紧机会了

LSKA注意力 | 重新思考和设计大卷积核注意力,性能优于ConvNeXt、SWin、RepLKNet以及VAN

CVPR 2023 | TinyMIM:微软亚洲研究院用知识蒸馏改进小型ViT

ICCV2023|涨点神器!目标检测蒸馏学习新方法,浙大、海康威视等提出

ICCV 2023 Oral | 突破性图像融合与分割研究:全时多模态基准与多交互特征学习

听我说,Transformer它就是个支持向量机

HDRUNet | 深圳先进院董超团队提出带降噪与反量化功能的单帧HDR重建算法

南科大提出ORCTrack | 解决DeepSORT等跟踪方法的遮挡问题,即插即用真的很香

1800亿参数,世界顶级开源大模型Falcon官宣!碾压LLaMA 2,性能直逼GPT-4

SAM-Med2D:打破自然图像与医学图像的领域鸿沟,医疗版 SAM 开源了!

GhostSR|针对图像超分的特征冗余,华为诺亚&北大联合提出GhostSR

Meta推出像素级动作追踪模型,简易版在线可玩 | GitHub 1.4K星

CSUNet | 完美缝合Transformer和CNN,性能达到UNet家族的巅峰!

AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习

计算机视觉入门1v3辅导班

计算机视觉交流群

聊聊计算机视觉入门

标签:头显,代码,torch,compile,PyTorch,Quest,ExecuTorch,NumPy
From: https://www.cnblogs.com/wxkang/p/17776006.html

相关文章

  • 《动手学深度学习 Pytorch版》 9.5 机器翻译与数据集
    机器翻译(machinetranslation)指的是将序列从一种语言自动翻译成另一种语言,基于神经网络的方法通常被称为神经机器翻译(neuralmachinetranslation)。importosimporttorchfromd2limporttorchasd2l9.5.1下载和预处理数据集“Tab-delimitedBilingualSentencePairs”......
  • 《动手学深度学习 Pytorch版》 9.4 双向循环神经网络
    之前的序列学习中假设的目标是在给定观测的情况下对下一个输出进行建模,然而也存在需要后文预测前文的情况。9.4.1隐马尔可夫模型中的动态规划数学推导太复杂了,略。9.4.2双向模型双向循环神经网络(bidirectionalRNNs)添加了反向传递信息的隐藏层,以便更灵活地处理此类信息。9......
  • LSTM-CRF模型详解和Pytorch代码实现
    在快速发展的自然语言处理领域,Transformers已经成为主导模型,在广泛的序列建模任务中表现出卓越的性能,包括词性标记、命名实体识别和分块。在Transformers之前,条件随机场(CRFs)是序列建模的首选工具,特别是线性链CRFs,它将序列建模为有向图,而CRFs更普遍地可以用于任意图。本文中crf......
  • 《动手学深度学习 Pytorch版》 9.2 长短期记忆网络(LSTM)
    解决隐变量模型长期信息保存和短期输入缺失问题的最早方法之一是长短期存储器(longshort-termmemory,LSTM)。它与门控循环单元有许多一样的属性。长短期记忆网络的设计比门控循环单元稍微复杂一些,却比门控循环单元早诞生了近20年。9.2.1门控记忆元为了记录附加的信息,长短期记......
  • Pytorch-(三)张量
    1、张量支持的数据类型  (1)获取/设置Pytorch默认的张量类型importtorch#2、张量Tensor#2.1、获取/设置Pytorch的默认类型defDefaultType_func():dtype=torch.tensor([1,2,3.4]).dtypeprint("张量Tensor的默认类型为:",dtype)print("") 2、张量生成......
  • Internet-augmented language models through few-shot prompting for open-domain qu
    Internet-augmentedlanguagemodelsthroughfew-shotpromptingforopen-domainquestionanswering 其实我没怎么正经读过论文,尤其是带实验的,我目前认真读过的(大部头)也就是一些LLM的综述。记录这个文档主要是防止自己读着读着玩手机去了/注意力不集中了跑路了/没记录困惑导......
  • pytorch 量化相关参考
    ref:https://blog.csdn.net/znsoft/article/details/130788437importtorchimporttorch.quantizationclassM(torch.nn.Module):def__init__(self):super(M,self).__init__()self.quant=torch.quantization.QuantStub()#静态量化时量化桩......
  • pytorch一些准备工作
    conda常用指令激活以及退出当前虚拟环境condaactivatexxxcondadeactivate创建以及删除condacreate-nxxxpython=3.8condaremove-nxxx查看当前虚拟环境有哪些condainfo--envs查看当前环境中有哪些库condalist安装与更新包condainstallnump......
  • Failed to stop auditd.service: Operation refused, unit auditd.service may be req
    [root@7~]#systemctlstopauditd.serviceFailedtostopauditd.service:Operationrefused,unitauditd.servicemayberequestedbydependencyonly(itisconfiguredtorefusemanualstart/stop).Seesystemlogsand'systemctlstatusauditd.service&#......
  • Python3,3分钟,带你了解PyTorch,原来科学计算库也不是很难嘛。
    1、引言小屌丝:鱼哥,最近忙啥嘞?小鱼:啥也没干。小屌丝:确定没干??小鱼:…这话到你嘴里,咋就变为了。小屌丝:也没有啊,我就是确认下,你干没干。小鱼:…能干啥,你想干啥?小屌丝:我想请教你个问题。小鱼:正儿八经的问题,是不?小屌丝:你就看我今天这身穿的,还能不正经?小鱼:穿新鞋走老路小屌丝:此话咋......