【问题标题】:How a more than 256bytes Look Up table can be accessed using neon?如何使用 neon 访问超过 256 字节的查找表?
【发布时间】:2014-09-26 05:20:39
【问题描述】:

我需要使用 neon 访问整数类型的 256 值查找表。 有没有可能这样访问?

如果我的向量中的索引以顺序方式进行,我将使用 VTBL,或者最多 256 位。 这里我的索引向量索引 0 - 255 范围内的任何一个。所以,我做不到。

如果有人知道这件事 请帮帮我。

问候, 笑脸

【问题讨论】:

    标签: arm simd neon


    【解决方案1】:

    看看VTBX指令,它可以用来扩展NEON查表。例如:

    // indices in d30, result to d31
    
    VMOV.8 d29, #16
    VTBL.8 d31, {q0, q1}, d30
    VSUB.8 d30, d30, d29
    VTBX.8 d31, {q2, q3}, d30
    VSUB.8 d30, d30, d29
    VTBX.8 d31, {q4, q5}, d30
    

    但是,一个 256 字节的表将需要整个 NEON 寄存器文件,因此您必须为每个向量查找重新加载(部分)表。

    【讨论】:

      【解决方案2】:

      NEON 不可能。

      您首先应该考虑一下为什么要使用 LUT。大多数情况下,LUT 用于节省复杂数学运算的周期,但 NEON 功能强大,可以轻松处理此类数学运算。

      蛮力算术是 NEON 游戏的名称。您应该先查看 LUT 是如何生成的,然后使用 NEON 即时进行数学运算。

      【讨论】:

        猜你喜欢
        • 2014-04-05
        • 2023-03-21
        • 2012-03-29
        • 2015-06-14
        • 2017-11-15
        • 2020-06-10
        • 2014-03-20
        • 2021-08-18
        • 2012-04-17
        相关资源
        最近更新 更多