霓虹灯是否支持ARMv8(aarch64)?
问题描述:
我想使用Halide for ARM A53(aarch64)目标与氖矢量化。霓虹灯是否支持ARMv8(aarch64)?
但我不知道如何创建目标对象。此外,我无法在Target.h中找到具有霓虹灯功能的aarch64目标。
我测试的以下代码在A53目标上运行,但生成的代码不包含氖指令。
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);
答
arm-64是halide用于aarch64的,所以你的目标很好。要使用霓虹灯说明,您需要进行矢量化处理。不知道autoscheduler是否在做这件事(应该是!)。尝试不自动调度,而只是说:
brighter.vectorize(x, 8);
即使使用auto_schedule()的brighter.vectorize instread,仍看不到霓虹灯指令。 – junhee
我的错误!我正在搜索arm 32指令而不是ARMv8指令。该二进制文件包含ARMv8指令。 – junhee