首页 > 其他分享 >pytorch的 jit功能不应该叫aot功能吗?

pytorch的 jit功能不应该叫aot功能吗?

时间:2023-10-16 15:23:38浏览次数:39  
标签:代码 jit 编译 pytorch aot 优化 运行

jit简介

pytorch的jit功能是为了生成类似于计算图的功能,能加快模型速度,便于部署,属于是取tensorflow之长补自己之短。

jit由来

之所以叫jit,是因为他仍然属于实时解释的范畴,但是能预先生成中间量,“审时度势”地实时运行。

参考

可以看这位帖子:https://zhuanlan.zhihu.com/p/650885922
以下均为摘抄:

对于 C/C++ 之类的编程语言,我们会将所有的代码提前“翻译”成机器语言,这样在实际运行时就不会有额外的开销,可以全速进行推理。但是这样做也有一些缺点:
编译花费的时间很长,对于需要频繁修改代码的场景,欠缺灵活性
编译时无法感知运行环境,也就无法采取一些针对硬件环境的优化

另一种做法是使用解释器,不对代码进行提前编译,而是在运行时“边解释边执行”,代码更灵活,也可以尝试作一些针对当前环境的优化。这种语言被称为“解释性语言”,比如 Lisp、Pascal 等。当然代价通常就是更差的性能,毕竟“编译”需要占用运行时的时间,而且由于不能得到全部上下文,所以无法进行依赖上下文的优化。

那么如果“我都要”呢?既希望代码可以充分利用当前环境,又不希望牺牲性能的话,可以尝试第三种方案,也就是 JIT。JIT 是 just-in-time 的缩写,它不会将编译的过程一口气完成,而是先对代码进行一些处理,存储成某种序列化表示(比如计算图);然后在实际的运行时环境中,通过 profiling 的方式,进行针对环境的优化并执行代码。

torch jit 的名字就来源于此,PyTorch 使用 trace 或 script 之类的方法将模型转换成计算图,然后在运行时 "just in time" 的优化和执行推理过程。

标签:代码,jit,编译,pytorch,aot,优化,运行
From: https://www.cnblogs.com/yonggie/p/17767375.html

相关文章

  • PyTorch之线性回归模型
    1简介1.1线性回归模型简介线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y=wx+e,e为误差服从均值为0的正态分布。其中只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,称为一元......
  • 在Python中使用LSTM和PyTorch进行时间序列预测|附代码数据
    全文链接:http://tecdat.cn/?p=8145最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出。顾名思义,时间序列数据是一种随时间变化的数据类型。例如,24小时内的温度,一个月内各种产品的价格,一年中特定公司的股票价格诸如长期短期记忆网络(LSTM)之类的高级深度学习模型能......
  • 《动手学深度学习 Pytorch版》 8.6 循环神经网络的简洁实现
    importtorchfromtorchimportnnfromtorch.nnimportfunctionalasFfromd2limporttorchasd2lbatch_size,num_steps=32,35train_iter,vocab=d2l.load_data_time_machine(batch_size,num_steps)8.6.1定义模型num_hiddens=256rnn_layer=nn.RNN(len(......
  • pytorch(8-6) 循环神经网络的简洁实现
     https://zh.d2l.ai/chapter_recurrent-neural-networks/rnn-concise.html# 86循环神经网络的简洁.pyimporttorchfromtorchimportnnfromtorch.nnimportfunctionalasFfromd2limporttorchasd2lfromAPI_86import*batch_size,num_steps=32,35tra......
  • pytorch(8-6) 循环神经网络的简洁实现
    https://zh.d2l.ai/chapter_recurrent-neural-networks/rnn-concise.html API_85.pyimportcollectionsimportrefromd2limporttorchasd2limportrandomimportmathimporttorchimportrandomdraw_pic=0#@saved2l.DATA_HUB['time_machine']=......
  • 《动手学深度学习 Pytorch版》 8.5 循环神经网络的从零开始实现
    %matplotlibinlineimportmathimporttorchfromtorchimportnnfromtorch.nnimportfunctionalasFfromd2limporttorchasd2lbatch_size,num_steps=32,35train_iter,vocab=d2l.load_data_time_machine(batch_size,num_steps)#仍然使用时间机器数据集......
  • pytorch nn.KLDivLoss()损失计算
    参考:https://blog.csdn.net/L888666Q/article/details/126346022?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-126346022-blog-128974654.235^v38^pc_relevant_default_base&spm=1001.2101.3001.4242.2&utm_relev......
  • 《动手学深度学习 Pytorch版》 8.4 循环神经网络
    8.4.1无隐状态的神经网络对于无隐藏装态的神经网络来说,给定一个小批量样本\(\boldsymbol{X}\in\mathbb{R}^{n\timesd}\),则隐藏层的输出\(\boldsymbol{H}\in\mathbb{R}^{n\timesh}\)通过下式计算:\[\boldsymbol{H}=\phi(\boldsymbol{XW}_{xh}+\boldsymbol{b}_h)\]\(\phi\)......
  • .net8 AOT笔记
    .net8AOT笔记 近期。net8发布了第一个rc版本,刚好近期在做一些.net6下的一些程序验证,顺带试了下。以x64为例系统ubuntu22.4x64 下载.net8sdkhttps://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-8.0.100-rc.1-linux-x64-binaries 安装.net8mkdir-p......
  • 搭建Pytorch2.1+CUDA12.1+Anaconda+Pycharm深度学习环境
    环境:  Win1122H2需要的安装包:Anaconda3-2021.05-Windows-x86_64.exe  Python3.11.(pytorch2.0目前推荐的Python版本为3.8-3.11)pycharm-professional-2021.2.1.exeCUDA12.1与CUDNNV8.9.5pytorch2.1选择性安装OpenCV库一、安装CUDA12.1与C......