mlir 编译器学习笔记之四 -- 调度

1、指令的活跃区间 LiveRange [startTime, endTime]

startTime: 节点开始执行的时间(指令被发射到功能单元)

endTime: 节点结果就绪的时间(指令执行完成,结果可用)

前驱指令P: R1 = R2 + R3 // LiveRange: [10, 12]

当前指令C: R4 = R1 * 2 // 什么时候可以开始?==> R1 就绪,即endTime

2、普通调度 (严格顺序)& 硬件循环(允许重叠)的原因

复制代码
T1 = max(preStart + hardware_switch_overhead,preEnd + loop_iteration_period - latency)

普通调度OOO:可以提前发射,但会在流水线中等待

硬件循环:可以更早开始执行,因为有数据转发 (专有硬件,不竞争通用资源)

3、资源占用:级联模式时需要多个功能单元

相关推荐
网络工程小王7 分钟前
【大数据技术详解】——Kibana(学习笔记)
大数据·笔记·学习
im_AMBER10 分钟前
Leetcode 144 位1的个数 | 只出现一次的数字
学习·算法·leetcode
red_redemption16 分钟前
自由学习记录(144)
学习
努力的lpp20 分钟前
2024小迪安全课程第四节复习笔记
笔记·安全
adore.9681 小时前
3.20 复试学习
学习
Master_oid1 小时前
机器学习35:元学习的应用
人工智能·学习·机器学习
想七想八不如114082 小时前
SQL操作学习
数据库·sql·学习
雷工笔记2 小时前
AI使用|通过AI学习物料分类编码表
笔记·学习
Shea的笔记本2 小时前
MindSpore实战笔记:WaveNet音乐生成复现全记录
笔记