神经网络编译器优化-死代码消除

定义

死代码指在程序执行的过程中可能无法执行或者访问的代码,以及仅影响死变量(写入但从未再次读取)的代码。死代码删除(DCE, dead code eliminate)是指删除在编译过程中没有使用的变量等的编译优化技术,这种编译优化技术可以保证在删除死代码之后不影响程序运行结果的正确性.

例子

在这里插入图片描述
以传统编译器为例,在这个例子里面,我们定义了三个变量:a,b,c.但是在实际执行的过程中,我们发现其实执行不到b+=a这行指令.因此对于这段代码来说,b是无效的.那么操作系统也不用额外分空间.在现在的神经网络编译器中,其实相较于传统编译器的语法树的概念,我们优化的是针对IR,也就是中间表示层.IR一般分为两种:基于图的high-level IR和基于SSA的low-level IR.其本质也是各种计算的表达.如果我们使用神经网络计算图的概念,上面的例子就可以转换成下面的计算图.
在这里插入图片描述
死代码消除的对象就相当于是子图,计算图的一部分,边,节点等.因此进行死代码消除之后,计算图就变成了
在这里插入图片描述

优势

  • 减少代码的长度,增加可读性.
  • 避免执行不必要的操作,提高了运行的效率,减少了运行时间。
  • 节省不必要的资源分配,优化空间.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值