问题标签 [avx2]

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 回答
313 浏览

c++ - 我正在尝试使用 AVX2 重写函数并遇到问题

原始标量函数

等效的 AVX 功能

我不确定如何在最后一步将 m256i 变量转换为整数。resShift 具有右移的 m256i 值,但我必须将其转换为整数形式并从该函数返回。有什么帮助吗?

0 投票
1 回答
1788 浏览

x86 - 使用 AVX2 计算 8 个长整数的最小值

我试图尝试long ints使用AVX2. 我是SIMD编程的新手,我不知道从哪里开始。我没有看到任何解释如何执行minmaxin的帖子/示例AVX2long ints我知道由于限制,我不能超过 4 256 bit,但我可以使用三个步骤来解决我的问题。我也无法弄清楚如何将已经存在的正常数据加载long int arrayvectorsfor 中avx2

我知道这个过程背后的想法,这就是我想要实现的目标

有人可以帮我解决如何让它发挥作用。还有最后min是单人操作,是不是就做比较好CPU?我应该使用其他东西AVX2吗?(我在x86系统上)

0 投票
1 回答
1724 浏览

c++ - 内联汇编+指针管理

我对在 C++ 代码中使用内联汇编非常陌生。我想要做的基本上是一种大小为 32 的指针的 memcopy。

在 C++ 中,代码通常是这样的:

我已经做了一点内联汇编,但每次我都事先知道输入选项卡和输出选项卡的大小。

所以我尝试了这个:

G++ 告诉我:

所以我尝试了这个:

我从 G++ 获得:

在每种情况下,我都试图找到没有成功的解决方案。我也体验过这个解决方案:

G++:

那个消息看起来很常见,但我不知道在这种情况下如何修复它。

我也知道我的尝试并不严格代表我用 C++ 编写的代码。

我想了解我的尝试有什么问题,以及如何尽可能接近我的 C++ 函数。

提前致谢。

0 投票
1 回答
503 浏览

gcc - 使用 asm 代码重新实现 AVX2 内部函数

问候大家。由于某些特殊原因,我们必须重新实现 AVX2 intrics,如下所示:

对应的函数是_mm256_and_si256(__m256i s1, __m256i s2),它是一个 AVX2 内部函数。通过谷歌搜索后,我发现了一些类似的东西,比如连接一些基本类型,比如,int输入寄存器。但是,我仍然没有找到连接输入参数和输入寄存器以及用于 asm代码的方法。floatlongs1s2ymm1ymm2vpand

所以这里的任何人都愿意帮助我使上述示例工作吗?非常感谢你!

0 投票
0 回答
814 浏览

assembly - _mm_i32gather_ps 有问题

我正在使用 AVX 指令手动优化一些代码。在某些时候,我想使用 _mm_i32gather_ps() 从(未对齐的)数组中收集一些浮点数,因为它们位于随机位置(不连续)。

尽管如此,我没有得到我期望的值。我检查了索引(这是正确的),即使我对索引中的值进行硬编码,比如

我没有得到预期值。

据我所知,数组不需要对齐,也不需要对数组的访问。有谁看到我可能做错了什么?

谢谢

0 投票
2 回答
2650 浏览

python - 错误:“vbroadcastss”的后缀或操作数无效

我正在尝试在 CentOS 6.5 服务器上安装annoy pip install annoy但出现以下错误。任何想法?我VBROADCASTSS这里找到了,但仍然不知道如何解决这些错误。

0 投票
0 回答
364 浏览

visual-studio - AVX2 采集说明

当我使用 Visual Studio 通过编译器内置生成 AVX2 收集指令时,它不会插入 VXORPS 指令来打破写入 YMM 寄存器的先前指令与收集之间的依赖关系。

然而,英特尔编译器确实做到了这一点,最终结果是由于数据依赖性被破坏而显着提高了性能。

由于我不想进入的原因,我不能使用英特尔编译器,那么有什么方法可以“强制”Visual Studio 插入该 VXORPS 指令?

我已经尝试创建一个中间 __m256i 并在其上调用 VXORPS,但这不起作用。

0 投票
1 回答
618 浏览

visual-studio - 如何在 MASM/VS15 中使用 AVX2?

问题:我写了这样的东西(在proc内部):

和 masminvalid instruction operands第一次和syntax error : ymm0第二次抱怨。我正在使用 VS15 社区版为 x64 编译。

0 投票
3 回答
636 浏览

c++ - 使用 SSE 和 AVX 查找矩阵中的最大元素及其列和行索引

我需要找到一维矩阵中的最大元素及其列和行索引。

我使用一维矩阵,所以首先需要找到最大元素的索引,然后很容易得到行和列。

我的问题是我无法获得该索引。

我有一个可以找到最大元素并使用 SSE 的工作函数,它是:

而且我还有一个使用 AVX 的非工作功能:


任何人都可以帮助我实际找到最大元素的索引并使我的 AVX 版本正常工作吗?

0 投票
1 回答
740 浏览

c++ - 将 SSE 矩阵向量乘法代码转换为 AVX

我正在尝试将我的 SSE 函数转换为 AVX。该函数执行向量矩阵乘法,这是我的工作 SSE 代码:

以下是我对 AVX 的看法:

但是,AVX 代码会崩溃 ( Access violation reading location 0xFFFFFFFFFFFFFFFF)。


谁能帮我让我的 AVX 功能正常工作?

PS:我在函数中传递的矩阵和向量的大小始终是 8 的倍数。此外,我传递给我的 SSE 函数的数组是 16 位对齐的 ( __declspec(align(16))float* = generate_matrix(256);),我传递给我的 AVX 函数的数组是 32 位的对齐(__declspec(align(32))float* = generate_matrix(256););