我想将 Halide 用于带有霓虹灯矢量化的 ARM A53(aarch64) 目标。
但我不知道如何创建 Target 对象。另外,我在Target.h中找不到具有 neon 功能的 aarch64 目标。
我测试过的以下代码在 A53 目标上运行,但生成的代码不包含 neon 指令。
Target target("arm-64-linux"); // is it right?
Buffer<uint16_t> input(640,480);
Var x,y;
Func brighter("brighter");
brighter(x,y) = input(x,y) + 100;
brighter.estimate(x, 0, 640).
estimate(y, 0, 480);
Pipeline p(brighter);
p.auto_schedule(target);
p.compile_to_static_library("./lib_dummy", {input}, "", target);
Run Code Online (Sandbox Code Playgroud)
小智 5
arm-64 是 Halide 用于 aarch64 的,所以你的目标没问题。要使用 neon 指令,您需要对某些内容进行矢量化。不确定自动调度程序是否这样做(应该是!)。尝试不要自动安排,而只是说:
brighter.vectorize(x, 8);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
892 次 |
最近记录: |