视点!使用PyTorch 2.0 加速Hugging Face和TIMM库的模型
点蓝色字关注“机器学习算法工程师”设为星标,干货直达!PyTorch2 0引入了**torch compile()**来加...
2022-12-22点蓝色字关注“机器学习算法工程师”
设为星标,干货直达!
PyTorch 2.0引入了**torch.compile()**来加速模型,这篇文章我们将介绍如何使用**torch.compile()**来加速Hugging Face和TIMM库的模型。
【资料图】
torch.compile() 使得尝试不同的编译器后端变得容易,从而使用单行装饰器 torch.compile() 使 PyTorch 代码更快。它可以直接在 nn.Module 上工作,作为 torch.jit.script() 的直接替代品,但不需要您进行任何源代码更改。我们希望这一行代码更改能够为您已经运行的绝大多数模型提供 30%-2 倍的训练时间加速。
opt_module=torch.compile(module)
torch.compile 支持任意 PyTorch 代码、控制流、变异,并带有对动态形状的实验性支持。我们对这一发展感到非常兴奋,我们将其称为 PyTorch 2.0。
这个版本对我们来说不同的是,我们已经对一些最流行的开源 PyTorch 模型进行了基准测试,并获得了 30% 到 2 倍的大幅加速(见https://github.com/pytorch/torchdynamo/issues/681) 。
这里没有技巧,我们已经 pip 安装了流行的库,比如https://github.com/huggingface/transformers, https://github.com/huggingface/accelerate 和 https://github.com/rwightman/pytorch-image-models等流行的库,然后对它们运行 torch.compile() 就可以了。
很难同时获得性能和便利性,但这就是核心团队发现 PyTorch 2.0 如此令人兴奋的原因。Hugging Face 团队也很兴奋,用他们的话说:
TIMM 的主要维护者 Ross Wightman:“PT 2.0 开箱即用,适用于推理和训练工作负载的大多数 timm 模型,无需更改代码。”
Sylvain Gugger 是 transformers 和 accelerate 的主要维护者:“只需添加一行代码,PyTorch 2.0 就可以在训练 Transformers 模型时提供 1.5 到 2.x 的加速。这是引入混合精度训练以来最激动人心的事情!”
本教程将向您展示如何使用这些加速,这样您就可以像我们一样对 PyTorch 2.0 感到兴奋。
安装教程对于 GPU(新一代 GPU 的性能会大大提高):
pip3installnumpy--pretorch--force-reinstall--extra-index-urlhttps://download.pytorch.org/whl/nightly/cu117
对于CPU:
pip3install--pretorch--extra-index-urlhttps://download.pytorch.org/whl/nightly/cpu
当安装好后,你可以通过以下方式来进行验证:
gitclonehttps://github.com/pytorch/pytorchcdtools/dynamopythonverify_dynamo.py
另外一种安装方式是采用docker,我们还在 PyTorch nightly 二进制文件中提供了所有必需的依赖项,您可以使用它们下载:
dockerpullghcr.io/pytorch/pytorch-nightly
对于临时实验,只需确保您的容器可以访问所有 GPU:
dockerrun--gpusall-itghcr.io/pytorch/pytorch-nightly:latest/bin/bash使用教程
让我们从一个简单的例子开始,一步步把事情复杂化。请注意,您的 GPU 越新,您可能会看到更显着的加速。
importtorchdeffn(x,y):a=torch.sin(x).cuda()b=torch.sin(y).cuda()returna+bnew_fn=torch.compile(fn,backend="inductor")input_tensor=torch.randn(10000).to(device="cuda:0")a=new_fn()
这个例子实际上不会运行得更快,但它具有教育意义。
以 torch.cos() 和 torch.sin() 为特色的示例,它们是逐点操作的示例,因为它们在向量上逐个元素地进行操作。你可能真正想要使用的一个更著名的逐点运算是类似 torch.relu() 的东西。eager模式下的逐点操作不是最优的,因为每个操作都需要从内存中读取一个张量,进行一些更改,然后写回这些更改。
PyTorch 2.0 为您所做的最重要的优化是融合。
回到我们的示例,我们可以将 2 次读取和 2 次写入变成 1 次读取和 1 次写入,这对于较新的 GPU 来说尤其重要,因为瓶颈是内存带宽(您可以多快地向 GPU 发送数据)而不是计算(您的速度有多快) GPU 可以处理浮点运算)。
PyTorch 2.0 为您做的第二个最重要的优化是 CUDA graphs。CUDA graphs有助于消除从 python 程序启动单个内核的开销。
torch.compile() 支持许多不同的后端,但我们特别兴奋的一个是生成 Triton 内核(https://github.com/openai/triton,用 Python 编写的,但性能优于绝大多数手写的 CUDA 内核)的 Inductor。假设我们上面的示例名为 trig.py,我们实际上可以通过运行来检查代码生成的 triton 内核:
TORCHINDUCTOR_TRACE=1pythontrig.py
@pointwise(size_hints=[16384],filename=__file__,meta={"signature":{0:"*fp32",1:"*fp32",2:"i32"},"device":0,"constants":{},"configs":[instance_descriptor(divisible_by_16=(0,1,2),equal_to_1=())]})@triton.jitdefkernel(in_ptr0,out_ptr0,xnumel,XBLOCK:tl.constexpr):xnumel=10000xoffset=tl.program_id(0)*XBLOCKxindex=xoffset+tl.reshape(tl.arange(0,XBLOCK),[XBLOCK])xmask=xindex你可以验证融合这两个 sins 确实发生了,因为这两个 sin 操作发生在一个单一的 Triton 内核中,并且临时变量保存在寄存器中,可以非常快速地访问。
下一步,让我们尝试一个真实的模型,比如来自 PyTorch hub 的 resnet50。
importtorchmodel=torch.hub.load("pytorch/vision:v0.10.0","resnet18",pretrained=True)opt_model=torch.compile(model,backend="inductor")model(torch.randn(1,3,64,64))如果您实际运行,您可能会惊讶于第一次运行很慢,那是因为正在编译模型。后续运行会更快,因此在开始对模型进行基准测试之前预热模型是常见的做法。
您可能已经注意到我们如何在此处使用“inductor”显式传递编译器的名称,但它不是唯一可用的后端,您可以在 torch._dynamo.list_backends() 中运行以查看可用后端的完整列表。为了好玩,您应该尝试 aot_cudagraphs 或 nvfuser。
现在让我们做一些更有趣的事情,我们的社区经常使用来自 transformers (https://github.com/huggingface/transformers) 或 TIMM (https://github.com/rwightman/pytorch-image-models)的预训练模型和我们的设计之一PyTorch 2.0 的目标是任何新的编译器堆栈都需要开箱即用,可以与人们实际运行的绝大多数模型一起工作。因此,我们将直接从 Hugging Face hub 下载预训练模型并对其进行优化。
importtorchfromtransformersimportBertTokenizer,BertModel#Copypastedfromherehttps://huggingface.co/bert-base-uncasedtokenizer=BertTokenizer.from_pretrained("bert-base-uncased")model=BertModel.from_pretrained("bert-base-uncased").to(device="cuda:0")model=torch.compile(model)#Thisistheonlylineofcodethatwechangedtext="Replacemebyanytextyou"dlike."encoded_input=tokenizer(text,return_tensors="pt").to(device="cuda:0")output=model(**encoded_input)如果您从模型和 encoded_input 中删除 to(device="cuda:0") ,那么 PyTorch 2.0 将生成 C++ 内核,这些内核将针对在您的 CPU 上运行进行优化。你可以检查 Triton 或 C++ 内核的 BERT,它们显然比我们上面的三角函数示例更复杂,但如果你了解 PyTorch,你也可以类似地浏览它并理解。
相同的代码也可以https://github.com/huggingface/accelerate 和 DDP 一起使用。
同样让我们尝试一个 TIMM 示例:
importtimmimporttorchmodel=timm.create_model("resnext101_32x8d",pretrained=True,num_classes=2)opt_model=torch.compile(model,backend="inductor")opt_model(torch.randn(64,3,7,7))我们使用 PyTorch 的目标是构建一个广度优先的编译器,该编译器将加速人们在开源中运行的绝大多数实际模型。Hugging Face Hub 最终成为我们非常有价值的基准测试工具,确保我们所做的任何优化实际上都有助于加速人们想要运行的模型。
本文翻译自https://pytorch.org/blog/Accelerating-Hugging-Face-and-TIMM-models/
标签:
点蓝色字关注“机器学习算法工程师”设为星标,干货直达!PyTorch2 0引入了**torch compile()**来加...
2022-12-22主流上市房企2022年11月销售数据已经披露完成。新华财经和面包财经研究员在剔除部分数据披露不全的上市...
2022-12-22截至2022年12月21日收盘,联动科技(301369)报收于94 46元,下跌3 02%,换手率5 19%,成交量6024 92手,成交额5754 53万元。
2022-12-22贵州百灵披露2022年半年度报告,报告期内,公司实现营业收入12 83亿元,同比增长0 74%;归属于上市公...
2022-12-21(原标题:独家资金:主力进散户逃前10股)12月21日大单净量前十名个股如下:dde大单净量=dde大单净流入...
2022-12-21根据市场公开信息及12月20日披露的机构调研信息,光大保德信近期对2家上市公司进行了调研,相关名单如下...
2022-12-21格隆汇12月20日丨千禾味业(603027)(603027 SH)公布,公司董事会认为《2022年限制性股票激励计划(草案修...
2022-12-20同花顺(300033)金融研究中心12月20日讯,有投资者向通达股份(002560)提问,你好,董秘,请问大股东...
2022-12-20可能会。如果用户使用网贷消费之后出现了逾期,并且经过网贷机构和第三方的催收人员催缴欠款无果之后,...
2022-12-20引读:刘诗诗过生日,杨幂暖心发文送祝福!果然美女和美女一起玩其实我们都知道娱乐圈中的故事是非常混乱...
2022-12-19大河报·豫视频记者邵可强疫情骗局,层出不穷!大河报·豫视频记者从河南警方了解到,不法分子通过社交...
2022-12-19导读|H5开屏龟速常是令开发者头疼的问题。腾讯企业微信团队对该现象进行分析优化,最终H5开屏耗时130ms...
2022-12-19可能会。如果用户使用网贷消费之后出现了逾期,并且经过网贷机构和第三方的催收人员催缴欠款无果之后,...
2022-12-18北京日报微信公众号|记者苏越今天,国家卫生健康委办公厅、中央军委后勤保障部卫生局发布通知称,根据当...
2022-12-17健康山东2022年12月16日0时至24时,山东全省报告新增本土确诊病例54例,其中济南46例、聊城6例、滨州2例...
2022-12-17证券代码:603687 证券简称:大胜达 公告编号: 2022-104债券代码:1...
2022-12-16国网冀北电力主导制定的虚拟电厂领域全球首套国际标准获IEC通过,12月13日,记者从国网冀北电力有限公司...
2022-12-1612月15日,广发盛锦混合A最新单位净值为0 7672元,累计净值为0 7672元,较前一交易日上涨1 17%。历史...
2022-12-16浙商证券股份有限公司 关于杭氧集团股份有限公司不提前赎回“杭氧转债” ...
2022-12-15大家总觉得水瓶座的人非常的不负责任,对待婚姻或许如同儿戏,但实际上各种滋味,只有他们真正经历过的...
2022-12-15现在鲈鱼18块钱一斤左右,头又大又扁。2条,白肚皮,在菜底放两三条大葱,价格也不一样。40克姜丝,怎么...
2022-12-15“产品前期准备工作已经就绪,就等电商平台上线了,我们的产品销路有了新的方向,很感谢你们!”日前,...
2022-12-14思考乐教育(01769 HK)昨日尾盘飙涨逾100%,今日早盘再涨近20%。截至发稿,涨5 49%,报1 92港元,成交...
2022-12-14智通财经APP讯,东华能源公告,公司全资子公司东华能源(茂名)有限公司(“东华茂名”)拟引进广东绿色烷烃...
2022-12-13格隆汇12月13日丨医脉通公告称,公司董事会已知悉最近公司的股份价格及成交量上升。经作出在相关情况下...
2022-12-13不知不觉,《妻子的浪漫旅行》这个婚姻观察类综艺节目已经迎来了第六季。这一季节目组请来了郑钧和刘芸...
2022-12-1320审判相关语:复活 对应星象:天蝎座牌面上描绘的是天使吹起号角,让听到这音乐的逝者得到救赎。天...
2022-12-12刘强东在自己的社交网站上分享了自己感染新冠的过程,以及给网友们介绍一些症状和过程,应该如何自处,...
2022-12-12截至2022年12月9日收盘,博信股份(600083)报收于7 98元,较上周的8 13元下跌1 85%。本周,博信股份...
2022-12-09截至2022年12月8日收盘,汇通能源(600605)报收于11 68元,下跌2 91%,换手率7 68%,成交量15 84万手...
2022-12-08(原标题:深交所:“21碧地01”盘中临时停牌)证券时报e公司讯,深交所公告,“21碧地01”盘中临时停牌...
2022-12-07这款交友App,把我们家闹得鸡飞狗跳。武汉市民刘女士说,家里老人看了网络广告下载了一款中老年社交App...
2022-03-18政府工作报告提出,增强区域发展平衡性协调性。推进京津冀协同发展、长江经济带发展、粤港澳大湾区建设...
2022-03-18山东适宜线下无理由退货的实体店大约35万家,今年将实现这些实体店无理由退货全覆盖。日前,记者从山东...
2022-03-182月18日,离岸人民币兑美元汇率大幅上调,盘中一度突破6 3200关口,触及近4年新高6 3144,创下2018年5...
2022-03-18近日,厦门海关对外发布消息称,RCEP实施首月,厦门海关签发RCEP原产地证书1013份,货值4 98亿元人民币...
2022-03-18在今天国新办举行的新闻发布会上,商务部部长王文涛表示,今年外贸形势严峻复杂,稳外贸压力增大,商务...
2022-03-18我们通过落实各项稳外资措施,积极促成亚洲硅业(青海)股份有限公司在甘河工业园区再投资建设年产60000吨...
2022-03-18近日,宝鸡2021年外贸数据公布:外贸进出口总值88 1亿元,同比增长10 9%,创历史新高。能取得这样的成...
2022-03-18中新网11月26日电 据厦门大学微信公众号消息,11月25日18:00,上海市召开新冠肺炎疫情防控新闻发布...
2021-11-26(抗击新冠肺炎) 江西本轮疫情新冠肺炎住院确诊病例“清零” 中新网南昌11月26日电 (记者 吴鹏...
2021-11-26中新网11月26日电 据“徐州发布”微博消息,江苏省徐州市疫情防控应急指挥部发布疫情防控工作进展...
2021-11-26(抗击新冠肺炎)上海逾5万名筛查对象核酸检测阴性 中新社上海11月26日电 (记者 陈静)上海25日新...
2021-11-26中新网湖州11月26日电(记者 施紫楠)今年是波兰姑娘杰西卡在中国乡村生活的第9年。对于她来说,中国...
2021-11-26中新网杭州11月26日电 题:浙大不眠夜:罕见亮起“灿烂星辰”灯 守护师生前行 作者 谢盼盼 ...
2021-11-26【聚焦2021中国网络媒体论坛展示会】 “宝鸡元素”备受追捧 11月24日—26日,2021中国网络媒体...
2021-11-26中新网杭州11月26日电(张煜欢)25日,杭州市新增两例无症状感染者。26日,杭州市新冠肺炎疫情防控指...
2021-11-26中新网11月26日电 据“杭州发布”微信公众号消息,在通报杭州2例无症状感染者后,杭州市加快推进流...
2021-11-26中新网兰州11月26日电 (陈强)“终于有稳定的水源供应了。”看着水管里流出的清澈山泉水,甘肃省平...
2021-11-26这两天,来自单亲家庭的山东青岛女孩刘郦微休学一年陪伴患病妈妈的视频感动无数网友。然而不幸的是...
2021-11-26中新网大连11月26日电 (记者 杨毅)大连市新冠肺炎疫情防控总指挥部26日发布通告,11月25日0时至24...
2021-11-26中新网11月26日电 据北京市卫健委微信公众号消息,截至2021年11月25日,北京市海淀区西三旗街道富...
2021-11-26记者从山西省临汾市吉县相关部门了解到,11月25日,临汾市吉县一在建乡村道路发生塌方,造成3人遇难...
2021-11-26中新网11月26日电 据河南省封丘县政府网站消息,11月25日,有媒体报道封丘县《学生餐后集体呕吐腹...
2021-11-26中新网杭州11月26日电(王逸飞 钱晨菲)11月25日,杭州市通报两名来杭返杭人员诊断为新冠病毒无症...
2021-11-26中新网南京11月26日电 (记者 钟升)苏州市政府新闻办公室25日深夜公布,截至当日22时,苏州市已累...
2021-11-26近日,“毒贩母亲”一事引发网友关注。河南郑州一名35岁的母亲李芳(化名)长期代购一款名为氯巴占的...
2021-11-26中新网11月26日电 据内蒙古自治区卫健委网站消息,11月25日0—24时,内蒙古自治区报告无新增确诊病...
2021-11-26中新网11月26日电 据江苏省卫健委官方微博消息,11月25日0-24时,江苏无新增确诊病例,新增本土无...
2021-11-26中新网11月26日电 据北京疾控中心微信公众号消息,11月25日18:00,上海市召开第107场新冠肺炎疫情...
2021-11-26上海瑞金医院、中山医院、同济医院、闵行区中心医院25日均发布消息称,根据国家和上海疫情防控要求...
2021-11-26走近年轻的视障工程师—— 为视障者点亮智慧生活(体验·新时代·追梦人·“急难愁盼这样解决”)...
2021-11-26中新网11月26日电 据“上海发布”微博消息,11月26日,上海市疫情防控工作领导小组办公室发布消息...
2021-11-26每逢求职季,不少应届毕业生心头难免萦绕迷茫与焦虑——学历够高吗?学校够牛吗? 在江苏省常熟...
2021-11-26中新网11月26日电 据辽宁省卫健委网站消息,11月25日0时至24时,辽宁省新增1例本土新冠肺炎确诊病...
2021-11-26规范性文件升格为部门规章拖欠农民工工资联合惩戒力度加大 列入失信惩戒名单期限内再次欠薪不予...
2021-11-26中新网11月26日电 据上海市卫健委官方微博消息,2021年11月25日0—24时,通过口岸联防联控机制,上...
2021-11-26中新网11月26日电 据“徐州发布”微信公众号消息,江苏省徐州市疫情防控应急指挥部25日发布《交通...
2021-11-26中新网11月26日电 据中央气象台网站消息,27日至28日,新疆、西北地区东部、川西高原、西藏东部等...
2021-11-262021年11月25日0—24时,通过口岸联防联控机制,报告1例新增境外输入性新冠肺炎确诊病例。新增治愈...
2021-11-26中国天气网讯 北京今天(11月26日)晴暖延续,最高气温12℃。周末气温略有下降,最高气温8℃至9℃,...
2021-11-262021-11-26
2021-11-26
中新网11月26日电 据“徐州发布”微信公众号消息,25日,徐州市疫情防控应急指挥部交通管控组发布...
2021-11-26网上认识的“高富帅”经常嘘寒问暖,关怀备至,以为找到了“白马王子” 武汉一女子就这样被套路...
2021-11-26我们从“失败”“避雷”小组里得到什么 在铺天盖地的网红滤镜美图中,“旅游失败小组”是另类的...
2021-11-26“双11”疯狂剁手是“购物成瘾障碍”吗 “购物成瘾障碍”可不是网购、“双11”火了之后才有的现...
2021-11-26本报记者追踪调查国内多起电信网络诈骗案发现—— 为赚快钱 IT青年沦为新型电诈案“制刀者” ...
2021-11-26记者观察 校园食品安全事件调查,不能是笔“糊涂账” 今年9月,河北霸州市东方金子塔学校部分...
2021-11-26建和谐用工关系 化解年轻人职场“摸鱼”心态 “工作每天都在‘摸鱼’,要不要辞职?”某网络通...
2021-11-26“理财课”变“劫财课” “一元理财训练营”让一些年轻人频频踩坑 “自从学了理财课程,我现...
2021-11-26第三方测评夹杂利益考量 回归公允中立需疏堵结合 第三方测评是一个新兴行业,应该看到它的积极...
2021-11-26相约冬日银杏黄 那些瞬间温暖如阳 ■ 11月23日的成都,难得的冬日暖阳,黄灿灿的银叶撒落街头...
2021-11-26这是什么“鬼生意” 如今代办理业务颇受市民欢迎,您是否听说过“死亡证明”也能代办?近日,记...
2021-11-26App过度收集个人信息何时休? 超范围高频率获取个人信息不同意读取不能使用 ● 下载运行购物...
2021-11-26中新网北京11月26日电 据北京海淀官方微信号消息,11月25日,23:30分,随着北京富力桃园C区的北门...
2021-11-26中新网北京11月26日电 26日,杭州市通报两名新冠病毒无症状感染者在杭活动轨迹。
2021-11-26中新网北京11月26日电 据徐州发布消息,江苏省徐州市暂停线下教学。11月26日-11月28日,徐州市各级...
2021-11-26中新网北京11月26日电 26日,国家知识产权局关于“逍遥镇”“潼关肉夹馍”商标纠纷答记者问。国家...
2021-11-26易买难退 娱乐票务投诉猛涨 业内人士:二手票平台在退票问题上也有不可推卸的责任 疫情期...
2021-11-26淄博一中学要求高一完成高中全部课程 该校老师反映教学进度加快致学生成绩大幅下降;桓台县教育...
2021-11-26“三天学会”“月入百万”?不能让植发行业野蛮生长 ■ 来论 植发手术需要的是专业负责、医...
2021-11-26“加拿大一枝黄花”的武汉中场战事 治理工作取得初步成效;全国多地展开清除行动;该花2010年被...
2021-11-26网上兜售低价手机卡套餐靠谱吗? 建议消费者看清套餐规则、归属地 避免被物联网卡忽悠 近...
2021-11-2611月25日大连市新冠肺炎疫情防控总指挥部发布,大连市严格落实新冠肺炎疫情防控各项措施,至2021年1...
2021-11-26妄言“12345什么事也不办”背后是作风积弊 陈广江 打了3次12345政务热线和20多次政府部门值...
2021-11-26化解医院停车难 就该多用“智脑” 罗志华 今年底,北京将实现道路停车电子收费全覆盖。据北...
2021-11-26河北唐山市曹妃甸区发生野禽H5N1亚型高致病性禽流感疫情 据农业农村部官网消息,农业农村部新闻...
2021-11-26大连调整离连人员管控措施:离连需持24小时核酸阴性证明等 11月25日大连市新冠肺炎疫情防控总指...
2021-11-26新华社上海11月25日电(记者龚雯 史依灵)记者25日从上海市新冠肺炎疫情防控新闻发布会上获悉,截至2...
2021-11-26Copyright © 2015-2022 亚洲水产网版权所有 备案号:豫ICP备20022870号-9 联系邮箱:553 138 779@qq.com