基本语法和规则一定从官方教程开始,这篇博客是官方教程前几节的简要笔记。主要介绍 Halide 算法描述的语法规则、变量打印和调试、算法对ROI和padding的处理。
Halide(五)算法调度 是紧跟在本博客之后的章节,都是对官方教程的笔记,(三)和(四)是一些环境和常用算法的穿插,不关心可跳过。
另外,博主把一些简单的算法都实现了一遍,建了一个仓库,持续更新中:
P-Chao / Halide-Zoon
halide learning demo collection
博客简单做下官方教程的笔记。
lesson1
Function:定义的是一个处理pipeline
Var:定义的是中间变量占位符
Expr:定义具体处理过程(只定义处理流程,而不进行真正计算)
Buffer:定义的是真实存在于内存的图像
lesson9
RDom: Reduction Domain, 可以理解为range,可以辅助定义roi
lesson2
cast:进行类型转换
lesson3
compile+to_lowered_stmt:将实际最后执行的代码保存为html,方便查看实际的算法过程
lesson4
trace_stores:打印计算结果
print:变量打印
print_when:带条件的变量打印
另外,还可以通过std:cout 直接打印Exp表达式,可以方便检查
lesson6
set_min:可以实现只在roi区域内进行计算
lesson7
BoundaryCondition clamp 和 set_min : 均可用来处理padding
OK,See You Next Chapter!