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、资源占用:级联模式时需要多个功能单元

相关推荐
星火开发设计3 小时前
枚举类 enum class:强类型枚举的优势
linux·开发语言·c++·学习·算法·知识
程序员清洒8 小时前
Flutter for OpenHarmony:GridView — 网格布局实现
android·前端·学习·flutter·华为
喜欢吃燃面8 小时前
Linux:环境变量
linux·开发语言·学习
代码游侠8 小时前
ARM开发——阶段问题综述(二)
运维·arm开发·笔记·单片机·嵌入式硬件·学习
张祥6422889048 小时前
误差理论与测量平差基础笔记十
笔记·算法·机器学习
云边散步11 小时前
godot2D游戏教程系列二(4)
笔记·学习·游戏开发
BORN(^-^)12 小时前
《产品经理方法论》阅读笔记
笔记·产品经理
jrlong12 小时前
DataWhale大模型基础与量化微调task4学习笔记(第 2 章:高级微调技术_RLHF 技术详解)
笔记·学习
Darkershadow12 小时前
蓝牙学习之Time Set
python·学习·蓝牙·ble·mesh
傻小胖12 小时前
13.BTC-思考-北大肖臻老师客堂笔记
笔记·区块链