- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在 Neon 中实现以下循环。
int jump=4,c[8],i; //c[8] may be declared here
int *src,sum=0; //**EDIT:** src points to a 256 element array
for (i = 0; i < 4; i++)
{
sum = src[ i + 0 * jump] * c[0];//1
sum += src[ i + 1 * jump] * c[1];//2
sum += src[ i + 2 * jump] * c[2];//3
sum += src[ i + 3 * jump] * c[3];//4
sum += src[ i + 4 * jump] * c[4];//5
sum += src[ i + 5 * jump] * c[5];//6
sum += src[ i + 6 * jump] * c[6];//7
sum += src[ i + 7 * jump] * c[7];//8
src += 2; //9
}
**EDIT:**
The code can be shortened as-
int jump=4,c[8],i,j; //initialize array c
int *src,sum,a[256];//initialize array a
src=a;
for (i = 0; i < 4; i++)
{
sum=0;
for (j = 0; j < 8; j++)
{
int *p=src+ i + (j * jump);
sum += (*p)* c[j]; //sum += src[ i + j* jump] * c[j]
}
printf("Sum:%d\n",sum);
src += 2;
}
Just need to know a way to implement something like [%0]=[%0]+4 rather than [%0]!
主要优化将通过使用 NEON 中的 VMLA 指令并行运行编号 1-8 的指令来实现。
另外指令 9 中指针 src 如何加 2?
最佳答案
不要依次计算总和,而是同时计算它们。那么您不需要跳过源值,因为每个源值(大概)都会影响一些总和。基本上,您所做的就是计算(* 表示点积)。
sum0 = source * (c0 0 0 0 c1 0 0 0 c2 0 0 0 ... c7 0 0 0 )
sum1 = source * ( 0 0 0 c0 0 0 0 c1 0 0 0 c2 ... 0 0 0 c7 )
sum2 = source * ( 0 0 0 0 0 0 c0 0 0 0 c1 0 ... 0 0 c6 0 )
sum3 = source * ( 0 0 0 0 0 0 0 0 0 c0 0 0 ... 0 c5 0 0 )
你可以通过这样做来做到这一点
sum0 = sum1 = sum2 = sum3 = 0
sum0 += (s0 s1 s2 s3) * (c0 0 0 0)
sum1 += (s0 s1 s2 s3) * ( 0 0 0 c0)
sum2 += (s0 s1 s2 s3) * ( 0 0 0 0)
sum3 += (s0 s1 s2 s3) * ( 0 0 0 0)
sum0 += (s0 s1 s2 s3) * (c1 0 0 0)
sum1 += (s0 s1 s2 s3) * ( 0 0 0 c1)
sum2 += (s0 s1 s2 s3) * ( 0 0 c0 0)
sum3 += (s0 s1 s2 s3) * ( 0 0 0 0)
...
sum0 += (s0 s1 s2 s3) * (c7 0 0 0)
sum1 += (s0 s1 s2 s3) * ( 0 0 0 c7)
sum2 += (s0 s1 s2 s3) * ( 0 0 c6 0)
sum3 += (s0 s1 s2 s3) * ( 0 c5 0 0)
您实际上不需要在各个步骤中进行水平求和,您只需使用 vmul.32 (或者可能是累积形式,如果有的话)来计算点积,然后在最后对它们进行水平求和。您只需要找出一种方法来计算系数 vector ,但由于它们都只有一个非零元素,因此您可以简单地使用 vset_lane。
或者,更好的是,您可以利用每个系数 vector 仅包含一个非零条目的事实,并执行一个乘法而不是四个,然后使用 vdup_lane 提取每个 channel 并将其添加到总和中。您需要生成系数 vector(c0 0 0 0)
(c1 0 c0 c1)
(c2 c0 c1 c2)
...
(c7 c5 c6 c7)
如果您的系数已经连续存储,这应该很容易 - 您只需要修复第一个元素。
关于c - NEON 中非统一地址跳转的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224679/
我喜欢在 Lisp、Python 或 JavaScript 等(通常是动态的)语言中可以使用 boolean 运算符而不是条件来编写的简洁代码,如典型的: x = someString or "def
具体来说,我将 WPF 与 MVVM 一起使用。我有一个 MainWindow,它是一个 WPF 窗口,所有操作都在其中发生。它为其属性、命令等使用相应的 View 模型类。 我在 Applicati
对于我从 VB6 移植的应用程序,我有几个关于 CLS 合规性的烦人的编译器警告,包括: Name '_AnIdentifier' is not CLS-Compliant. Type of para
Module Unix 包含 time 函数来获取自 Epoch 以来的秒数,但是是否有一种独立于平台的方式来获取相同的值并确保代码在非-Unix 部署? 最佳答案 尽管有它的名字,Unix modu
我有一个 R 函数,它试图将每个“单词”的第一个字母大写 proper = function(x){ gsub("(? proper("Māori") [1] "MāOri" 显然,RE 引擎认为
我有一个包含两列的表格。一个是 auto_increment 说 columnA 而另一个是非 auto_increment 说 columnB。我想在 columnB 中执行两种类型的插入操作: 插
我遇到了这个错误,但无法调试它 helpers.c:136:1: error: control may reach end of non-void function IDE 在最后一行中说} 这是我的
我想检查一个数组在 C 中是否按 acs 或 desc 顺序排序。这是使用 mpicc -Wall -o file file.c 编译的结果,因为我稍后在代码中使用 MPI 库。 mypractice
我想了解编译器对 C 中的非 volatile 变量有哪些限制(如果有的话)。 我不确定这是否属实,但有人告诉我,如果您有以下代码: int x; ... void update_x() { lo
我的代码在 IE 中有效,但在 Firefox 中无效。我试图让 onmousedown 和 onmouseup 事件以及 swapFE、swapEF 和 setUpTranslation 函数在 I
我的问题是.. 是否可以在非 root 设备上静默自动更新应用程序?如果设备已 Root ,则它会使用 super 用户权限更新我的应用程序,否则不会。请回复谢谢! 最佳答案 无法在非 Root 设备
阅读了 PropertyAnimator 的文档后,似乎只要满足以下条件之一,我们就可以为每个对象设置动画, 如果您有权限,请将 setter 方法添加到类中。 使用您有权更改的包装器类,并让该包装器
所以我正在制作移动应用程序,并希望使用相同的 URL 创建链接以激活 iOS 和 Android 中的内容。我已经知道该怎么做了。我对 android 的 Intent 是这样的:
这个问题很接近我的问题,但又不完全是:List minimum in Python with None? .我需要考虑到列表中所有值都为 None 的可能性。 我有一种情况,我必须在数据库中查找一些数
如何从 Pandas 数据框中获取非“NaN”值的索引? 我的数据框是 A b c 0 1 q1 1 1 2 NaN 3 2 3 q2
对于数据框 df = pd.DataFrame([[np.nan, 3.0, 7.0], [0.0, 5.0, 8.0], [0.0, 0.0, 0.0], [1.0, 3.0, np.nan], [
我在 Android 中播放视频之前对其进行解密。当我解密它时,我想将它存储在 Android 私有(private)文件夹中,这样其他应用程序和用户就无法访问它 - 我已经查找了一些看起来像这样的代
我有一个非常大的 csv 文件,如下所示: 关键词,印象 下载 juegos gratis,951 パソコン kakaku com,451 公司 session ,155 租车,356
我有一个继承自 AbstractType 的表单生成器类,我需要解析如下路径: $uri = $router->generate('blog_show', array('slug' => 'my-bl
我想从 Android 应用程序中的一个原始文本文件中读取一些文本,并在应用程序中显示该文本文件中的一行。小部件。 对于 MainActivity,我编写了一个使用以下代码获取 InputStream
我是一名优秀的程序员,十分优秀!