Halide(二)算法描述

基本语法和规则一定从官方教程开始,这篇博客是官方教程前几节的简要笔记。主要介绍 Halide 算法描述的语法规则、变量打印和调试、算法对ROI和padding的处理。

Halide(五)算法调度 是紧跟在本博客之后的章节,都是对官方教程的笔记,(三)和(四)是一些环境和常用算法的穿插,不关心可跳过。

另外,博主把一些简单的算法都实现了一遍,建了一个仓库,持续更新中:

博客简单做下官方教程的笔记。

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!

发表评论