准备
最近要做图像算法的一些性能优化, 所以就要学一下Halide,
- 什么是Halide?
- 为何选择Halide?
- Halide有什么优势, 有什么不足?
以上问题, 此处省略1w字…
环境
win10, vs2019, cmake…
- 准备Halide
Download下载最新安装包
Halide-12.0.1-x86-64-windows–本人是win10_64位机器, 所以就选择了介个…
选择的是编译好的release版本, - 准备source code
此处不是要从源码编译, 只想要tutorial部分代码和数据 - vs2019配置Halide的环境, 创建空项目release, X64
~include:
~lib/Release:
~bin/Release:
~Halide.lib
~Halide.dll
测试
lesson_01_basics.cpp
copy教程中的代码, 直接F5运行--> Success!
[官方教程](https://halide-lang.org/tutorials/tutorial_lesson_01_basics.html)
此处一坑:copy + paste上面的source code可避免
纯手敲官方代码, 出bug:
如下图: 来自官方的bug, realize里面改为vector可解决: realize({800, 600});
End
学到了什么:
1. 环境配置
2. Halide里面的Func, Var, Expr
3. Func: a pipeline or a computed image. 通过这个函数计算出来每一个像素的数值
4. Var和Expr: 正如我们理解的"变量", "表达式", Var通过运算符组合成Expr, 然后赋值给Func. (在Func中Var可以指图像的w, h, c. Expr是计算像素值的表达式)
5. 好像一个静态图, 前面的定义, 计算过程只是个定义, 只有在Func.realize()方法后才开始执行, 可能这里才是效率之所在...
此文作为学习总结, 后面会连续更新学习进度, , 如有谬误欢迎指正!