问题标签 [vectorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4136 浏览

matlab - MATLAB:从双精度数组到元胞数组的向量化赋值

我有三个数组,大小都一样:

如何获取与 b 为真的索引相对应的 xin 元素,并将它们分配给 xout 中的相应位置?

0 投票
2 回答
1990 浏览

gcc - 使用 GCC 进行循环版本控制

我正在使用 GCC 进行自动矢量化。由于客户要求,我无法使用内在函数或属性。(我无法获得用户输入来支持矢量化)

如果可以向量化的数组的对齐信息未知,则 GCC 调用“循环版本控制”的传递。在树上进行循环矢量化时将执行循环版本控制。当一个循环被确定为可向量化的,并且数据对齐或数据依赖的约束阻碍了它,(因为它们无法在编译时确定),那么将生成两个版本的循环。这些是循环的矢量化和非矢量化版本,以及运行时检查对齐或依赖性以控​​制执行哪个版本。

我的问题是我们必须如何强制对齐?如果我找到了一个可矢量化的循环,我不应该生成两个版本的循环,因为缺少对齐信息。

例如。考虑下面的代码

树转储(选项:-fdump-tree-optimized -ftree-vectorize)

在“bb 3”版本的矢量化代码中生成。在“bb 4”处生成没有矢量化的代码。这些是通过检查对齐来完成的(语句“A”)。现在不使用内在函数和其他属性,我应该如何只获得矢量化代码(没有这个运行时对齐检查。)

0 投票
10 回答
25368 浏览

matlab - 将 3D 矩阵与 2D 矩阵相乘

假设我有一个AxBxC矩阵X 和一个BxD矩阵Y

是否有一种非循环方法可以将每个C AxB矩阵与相乘Y

0 投票
3 回答
17021 浏览

matlab - 如何在不使用任何循环的情况下生成两个变量的函数?

假设我有一个函数 y(t,x) = exp(-t)*sin(x)

在 Matlab 中,我定义

现在,如何在不使用任何循环的情况下定义矩阵 y ,使得每个元素 y(i,j) 都包含所需函数 y at 的值(t(i), x(j))?下面是我如何使用 for 循环。

0 投票
5 回答
4470 浏览

arrays - 数组元素的重复副本:MATLAB 中的游程解码

我正在尝试使用“值”数组和“计数器”数组将多个值插入到数组中。例如,如果:

我想要一些函数的输出

成为

其中 a(1) 重复 b(1) 次,a(2) 重复 b(2) 次,等等...

MATLAB中有没有内置函数可以做到这一点?如果可能,我想避免使用 for 循环。我尝试了 'repmat()' 和 'kron()' 的变体,但无济于事。

这基本上是Run-length encoding

0 投票
5 回答
4157 浏览

c++ - C++ STL数据结构对齐、算法向量化

有没有办法使用属性((aligned))来强制 STL 容器对齐到特定字节?目标编译器不是 Microsoft Visual C++。

哪些库(如果有)提供具有特定显式矢量化的 STL 算法的专门模板,例如 SSE。我感兴趣的编译器是 g++、Intel 和 IBM XL。

0 投票
1 回答
25423 浏览

matlab - 如何将向量转换为元胞数组?

我有一个要转换为元胞数组的列向量,例如:

如果没有明确的 for 循环,我怎么能做到这一点?我试过:

没有运气...

另外,如果可能的话,我怎样才能对矩阵做同样的事情,即每个元素都单独存在于一个单元格中?

0 投票
6 回答
1379 浏览

performance - Mapping 2 vectors - help to vectorize

Working in Matlab I have 2 vectors of x coordinate with different length. For example:

I need to map xm to xn, or in other words to find which coordinates in xn are closest to xm. So if I have values associated with those coordinates, I can use this map as index and correlate those values.

Both vectors are sorted and there are no duplicates in each vector.

I wrote a simple function with for-loop:

For the above example is returns

It works ok, but takes a while with long vectors (over 100,000 points).

Any ideas how to vectorize this code?

0 投票
3 回答
95650 浏览

matlab - 如何比较两个数组的所有元素?

我有两个大约 1000 行和 1000 列的大数组。如果相应的元素相等,我需要比较这些数组的每个元素并将 1 存储在另一个数组中。

我可以用 for 循环来做到这一点,但这需要很长时间。我怎样才能更快地做到这一点?

0 投票
2 回答
10110 浏览

matlab - MATLAB:比较两个数组的所有元素

我在 MATLAB 中有两个矩阵,可以说每个矩阵arr1arr2大小为 1000*1000。我想比较它们的元素并将比较结果保存在结果矩阵resarr中,该矩阵也是 1000*1000,这样对于每个元素:

  • 如果 in 的元素arr1大于in 的元素arr2,则将值 1 放在结果中
  • 如果 in 中的元素arr2更大,则存储值 2

但我不想用 for 循环来做这件事,因为那比较慢。我怎样才能做到这一点?


编辑: 另外,如果我想将不同的 RGB 值存储在 1000*1000*3 结果矩阵中,取决于 and 的比较arr1arr2可以在没有慢循环的情况下完成吗?

例如存储 (255,0,0) ifarr1更大和 (0,255,0) ifarr2更大