当前位置: 首页 > news >正文

泉州免费网站制作企业公司信息网

泉州免费网站制作,企业公司信息网,网络课程开发,网站设计毕业设计题目推理加速-- torch.compile 一、背景介绍1.2 首次推理速度慢1.3 推理多次之后#xff0c;又会出现一次速度特别慢的情况#xff0c;感觉好像是重新优化 二、如何使用三、其他设置3.1 mode 设置3.2 backend3.3 fullgraph3.4 dynamic 参考资料 一、背景介绍 PyTorch 2.0 官宣了… 推理加速-- torch.compile 一、背景介绍1.2 首次推理速度慢1.3 推理多次之后又会出现一次速度特别慢的情况感觉好像是重新优化 二、如何使用三、其他设置3.1 mode 设置3.2 backend3.3 fullgraph3.4 dynamic 参考资料 一、背景介绍 PyTorch 2.0 官宣了一个重要特性 —— torch.compile这一特性将 PyTorch 的性能推向了新的高度并将 PyTorch 的部分内容从 C 移回 Python。torch.compile 是一个完全附加的可选的特性因此 PyTorch 2.0 是 100% 向后兼容的。 支撑 torch.compile 的技术包括研发团队新推出的 TorchDynamo、AOTAutograd、PrimTorch 和 TorchInductor。 TorchDynamo使用 Python Frame Evaluation Hooks 安全地捕获 PyTorch 程序这项重大创新是 PyTorch 过去 5 年来在安全图结构捕获方面的研发成果汇总AOTAutograd重载 PyTorch 的 autograd 引擎作为一个跟踪 autodiff用于生成 ahead-of-time 向后跟踪PrimTorch将约 2000 多个 PyTorch 算子归纳为一组约 250 个原始算子的闭集开发人员可以将其作为构建完整 PyTorch 后端的目标。这大大降低了编写 PyTorch 功能或后端的流程TorchInductor是一种深度学习编译器可为多个加速器和后端生成快速代码。对于 NVIDIA GPU它使用 OpenAI Triton 作为关键构建块。TorchDynamo、AOTAutograd、PrimTorch 和 TorchInductor 是用 Python 编写的并支持 dynamic shapes无需重新编译就能发送不同大小的向量这使得它们具备灵活、易于破解的特性降低了开发人员和供应商的使用门槛。 1.2 首次推理速度慢 值得注意的是torch.compile函数不会立即对函数进行加速优化而是在第一次运行的时候才进行优化。这就会导致编译后的函数在第一次执行的时候十分缓慢。但是会在第二次执行开始变得非常快。 1.3 推理多次之后又会出现一次速度特别慢的情况感觉好像是重新优化 原因分析 动态推理的原因即输入的tensor是动态的 二、如何使用 一行代码进行使用 modoel_compile torch.compile(model)三、其他设置 def compile(model: Optional[Callable] None, *,fullgraph: builtins.bool False,dynamic: builtins.bool False,backend: Union[str, Callable] inductor,mode: Union[str, None] None,options: Optional[Dict[str, Union[str, builtins.int, builtins.bool]]] None,disable: builtins.bool False) - Callable:Optimizes given model/function using TorchDynamo and specified backend.Args:model (Callable): Module/function to optimizefullgraph (bool): Whether it is ok to break model into several subgraphsdynamic (bool): Use dynamic shape tracingbackend (str or Callable): backend to be usedmode (str): Can be either default, reduce-overhead or max-autotuneoptions (dict): A dictionary of options to pass to the backend.disable (bool): Turn torch.compile() into a no-op for testing3.1 mode 设置 关于mode参数介绍如下 默认default: 适合加速大模型编译速度快且无需额外存储空间reduce-overhead适合加速小模型需要额外存储空间max-autotune编译速度非常耗时但提供最快的加速 未正确设置该参数导致的问题 1推理速度慢 示例 modoel_compile torch.compile(model modereduce-overhead)3.2 backend backend 编译器后端:API使用哪个后端将中间表示(IR)计算图(FX graph)转换为低级内核操作。这个选项对于调试graph编译问题和更好地理解torch.compile的内部非常有用。在大多数情况下默认的Inductor后端似乎能够提供最佳的训练性能结果。有很多后端列表我们可以使用下面命令查看 from torch import _dynamoprint(_dynamo.list_backends())我们测试使用nvprims-nvfuser后端可以获得比eager模式13%的性能提升(与默认后端28.6%的性能提升相比)。具体区别还是要看Pytorch文档我们这里就不细说了因为文档都有。 3.3 fullgraph fullgraph 强制单个图:这个参数是非常有用可以确保没有任何不希望的图截断。 3.4 dynamic dynamic 动态形状:目前 2.0对具有动态形状的张量的编译支持在某种程度上是有限的。编译具有动态形状的模型的一个常见解决方案是重新编译但会大大增加开销并大大降低训练速度。如果您的模型确实包含动态形状将动态标志设置为True将带来更好的性能特别是减少重新编译的次数。 都有什么是动态形状呢最简单的就是时间序列或文本长度不同如果不进行对齐操作的话序列长度不同就是动态的形状。 参考资料 https://www.zhihu.com/question/590338541/answer/2959785643 https://blog.csdn.net/tMb8Z9Vdm66wH68VX1/article/details/130939176
http://www.zqtcl.cn/news/844520/

相关文章:

  • 手机网站开发公司哪家最专业html5商业网站开发北大青鸟
  • 做爰全过程教育网站建筑工程公司名字起名大全
  • 如何作做网站网站建设需要掌握什么技术
  • 广州网站建设推广公司做网站怎么合并单元格
  • 网站建设策划书的编制怎样建网站域名
  • 公司做网站的费用怎么记账网站源码html
  • 网站流量数据东莞松山湖华为招聘信息
  • 跨境电商一站式服务平台wordpress用旧的编辑器
  • 上海外贸网站推广方法爱站关键词
  • 网站页面框架设计企业建设流程
  • 网站做留言板如何推广小程序商城
  • 金融社区类网站建设鞍山58同城招聘网
  • 网站搭建策划书wordpress 屏蔽插件更新
  • 做网上购物网站杭州房产网官方网站
  • 汕头市网站建设分站公司站长网站大全
  • c2c的网站名称和网址深圳设计公司办公室
  • 建设银行企业版网站做微网站平台
  • 北京企业网站建设电话长沙建设工程信息网
  • 大型综合门户网站开发扁平化个人网站
  • 怎么做代理人金沙网站长沙 网站运营
  • 商城网站开发的目的和意义鲜花类网站建设策划书范文
  • 什么类型的公司需要做建设网站的iis7 网站权限设置
  • 信誉好的商城网站建设火车头 wordpress 发布
  • 龙岩做网站抚顺 网站建设
  • wordpress怎么设置广告位青州网站优化
  • 网站的备案编号高端网站建设谷美
  • 佛山智能网站建设地址设计资溪做面包招聘的网站
  • 荆州网站建设多少钱国外网站设计理念
  • 网站备案成功后wordpress文字加框
  • 中小企业怎么优化网站西安网站建设求职简历