gpt4 book ai didi

android - Android neon 内在函数中 'addition' 和 'pairwise addition' 之间的区别?

转载 作者:行者123 更新时间:2023-11-29 14:32:19 25 4
gpt4 key购买 nike

我在 Android JNI 上使用 Neon 实现了一个算法。当我想将向量相加时,我注意到有两种类型的方法,但我看不出其中的区别。

// pairwise addition
int8x8_t vpadd_s8(int8x8_t a, int8x8_t b); // VPADD.I8 d0,d0,d0

// addition
int8x8_t vadd_s8(int8x8_t a, int8x8_t b); // VADD.I8 d0,d0,d0

第二个做你所期望的。它将 a 中的第 i 个 int8 与 b 中的第 i 个 int8 相加。为什么是这两种方法?

最佳答案

ARM's Information Center 可以找到很好的信息。 .该引用用于汇编指令,但名称与内在函数非常相似。虽然如果你打算使用 NEON,你会通过直接跳到组装来获得更好的性能。它比使用内部函数更容易编写。

总而言之,成对加法在同一向量中添加成对的元素,然后将结果连接成一个向量。插图(为了便于绘制,我使用 4 元素向量):

vector 'a'   vector 'b'
+-+-+-+-+ +-+-+-+-+
|0|1|2|3| |4|5|6|7|
+-+-+-+-+ +-+-+-+-+
\+/ \+/ \+/ \+/
1 5 9 13
\ \ / /
+-+-+-+--+
|1|5|9|13| result
+-+-+-+--+

这不同于常规的加法指令,后者将两个向量的相应元素相加,给出结果

+-+-+-+--+
|4|6|8|10|
+-+-+-+--+

对于上图中的ab

关于android - Android neon 内在函数中 'addition' 和 'pairwise addition' 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18133690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com