卤化物是不是支持带有霓虹灯的 ARMv8(aarch64)?

Posted

技术标签:

【中文标题】卤化物是不是支持带有霓虹灯的 ARMv8(aarch64)?【英文标题】:Does halide support ARMv8(aarch64) with neon?卤化物是否支持带有霓虹灯的 ARMv8(aarch64)? 【发布时间】:2017-02-16 02:47:34 【问题描述】:

我想将 Halide 用于带有霓虹矢量化的 ARM A53(aarch64) 目标。

但我不知道如何创建 Target 对象。此外,我在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);

【问题讨论】:

【参考方案1】:

arm-64 是 Halide 用于 aarch64 的,所以你的目标很好。要使用霓虹灯指令,您需要对某些东西进行矢量化。不确定自动调度程序是否正在这样做(应该是!)。尽量不要自动安排,而只是说:

brighter.vectorize(x, 8);

【讨论】:

即使使用了 auto_schedule() 的 brighter.vectorize 插入,仍然看不到 neon 指令。 我的错!我正在搜索 arm 32 指令而不是 ARMv8 指令。该二进制文件包含 ARMv8 指令。

以上是关于卤化物是不是支持带有霓虹灯的 ARMv8(aarch64)?的主要内容,如果未能解决你的问题,请参考以下文章

在 NEON armv8 程序集中存储指令

带有霓虹动画页面的聚合物入门套件

带有霓虹灯的Calc atan2 [重复]

sh 用霓虹灯支持编译SVN 1.7.20(Ubuntu 14.04)

sh 用霓虹灯支持编译SVN 1.7.20(Centos 6 / Fedora 21)

ARM 固定虚拟平台 (FVP) 和 ARMv8.4-a 支持