Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与x27之间的差异;添加';和';两两相加';在Android neon intrinsics中?_Android_Java Native Interface_Neon - Fatal编程技术网

与x27之间的差异;添加';和';两两相加';在Android neon intrinsics中?

与x27之间的差异;添加';和';两两相加';在Android neon intrinsics中?,android,java-native-interface,neon,Android,Java Native Interface,Neon,我在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,并将

我在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。为什么要用这两种方法?

在网站上可以找到很好的信息。该参考用于汇编指令,但名称与intrinsic非常相似。虽然如果您打算使用NEON,您只需直接跳到组装,就可以获得更好的性能。它甚至比使用内部函数更容易编写

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

这与常规加法指令不同,常规加法指令将两个向量的相应元素相加,得到结果

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

对于上图中的
a
b

可以在中找到良好的信息。该参考用于汇编指令,但名称与intrinsic非常相似。虽然如果您打算使用NEON,您只需直接跳到组装,就可以获得更好的性能。它甚至比使用内部函数更容易编写

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

这与常规加法指令不同,常规加法指令将两个向量的相应元素相加,得到结果

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

对于上图中的
a
b

感谢您的好意评论,但我发现这没有定论。两两相加:这些内部函数提供两两相加操作。加法:这些内部函数添加向量。结果中的每个通道都是对每个操作数向量中的相应通道执行加法的结果。感谢您的好意评论,但我发现这是不确定的。两两相加:这些内部函数提供两两相加操作。加法:这些内部函数添加向量。结果中的每个通道都是对每个操作数向量中的相应通道执行加法的结果。