aot代码没有调试模式—查看编译出来的代码调试–不能使用realize
jit代码使用–
- Func.trace_stores() 跟踪函数运行时计算结果
- Func.parallel(y) 在某个domain方向多线程并行计算
- print() 打印所关注表达式的值
- print_when() 打印在指定条件为真情况下的值,也可用于屏蔽条件为假时的输出
- 用c++的输出流输出复杂表达式,检查表达式构造是否和预期一致
上述方式调试
uint8溢出的问题,先进行扩展数据再进行加法(uin8–>>uint16)
add_y[(((add_y.stride.1 * t7) + t6) + add_y.s0.x.rebased)] = (inputa[(((inputa.stride.1 * t7) + t4) + add_y.s0.x.rebased)] + inputb[(((inputb.stride.1 * t7) + t5) + add_y.s0.x.rebased)])
halide的gpu实现
1.难点:
给出来的接口只能接受cpu buffer不能接收gpu buffer–转换下试试
确定吗?
编译时加上
target的指定00arm-64-android-opencl
2.输出值全为0,无法调试
3.look下源代码,看看视频