2017-02-16 85 views
0

我想使用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); 

回答

2

arm-64是halide用于aarch64的,所以你的目标很好。要使用霓虹灯说明,您需要进行矢量化处理。不知道autoscheduler是否在做这件事(应该是!)。尝试不自动调度,而只是说:

brighter.vectorize(x, 8); 
+0

即使使用auto_schedule()的brighter.vectorize instread,仍看不到霓虹灯指令。 – junhee

+0

我的错误!我正在搜索arm 32指令而不是ARMv8指令。该二进制文件包含ARMv8指令。 – junhee