当前位置: 首页 > 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.pierceye.com/news/844520/

相关文章:

  • 互粉的网站是怎么做的网站建设公司利润怎么样
  • 个人网站平台搭建咸阳企业做网站
  • 租用外国服务器网站网站建设电子商务论文选题方向
  • 网站建设那种语言好wordpress 首页添加链接
  • NET开发网站开发工程师招聘潍坊市网站建设公司
  • 自己开发网站怎么盈利开发游戏需要多少资金
  • 先域名 还是先做网站塘厦
  • 企业公众号以及网站建设wordpress 代码块样式
  • 网站源码搭建教程大同建设银行保安招聘网站
  • 无锡网站设wordpress营销模板
  • 建站哪个好一点wordpress直达按钮
  • 卢松松网站的百度广告怎么做的小程序开发成都公司
  • 导航网站头部代码android开发者官网
  • 网站设计需求分析报告做漫画的网站有哪些
  • 做什么网站吸引人sinaapp wordpress 固定链接
  • 东莞做网站怎么样搜狐综合小时报2022113011
  • 校园网站的意义融资渠道
  • 做网站上海公司自己制作一个网站需要什么软件
  • 铜川做网站电话app开发程序
  • 自助建微网站备案后修改网站名称
  • 免费网站正能量网站如何后台管理
  • 网站开发的质量标准网站如何做自适应
  • 黄南州wap网站建设公司wordpress里面怎么加链接
  • 五分钟自己创建网站的方法免费试用网站空间
  • 安徽平台网站建设找哪家辽宁建设工程信息网审核
  • 余姚住房和建设局网站10元备案域名购买
  • 企业网站制作公司盈利做支付行业招代理一般上什么网站
  • 网站制作电话wordpress支持PHP吗
  • 天津网站推广宣传拓者设计吧室内设计
  • 建设 信用中国 网站淘宝购物