avx 相关问题

Advanced Vector Extensions(AVX)是针对Intel和AMD微处理器的x86指令集架构的扩展。

AVX2 代码用于在 8 个 4 字节目标中查找 4 字节字符串的最长匹配

我需要最快的(即无分支、最小化微指令)相当于此代码的 AVX2 代码: 上一个长度 = 0 对于 i=0..7: len = matches_bytes(目标[i], src) 如果 len > prevlen: 上一个长度 = 长度 确实...

回答 1 投票 0

如何使用 AVX 执行并行加法,并将进位(溢出)反馈到同一元素(PE 校验和)?

我想使用 AVX SIMD 执行 8 个 16 位值的并行加法。需要溢出加法,即“带进位加法”,就像使用旧的“adc”x86 助记符执行的那样。 我

回答 2 投票 0

如何使用AVX执行带进位(溢出)的并行加法?

我想使用 AVX SIMD 执行 8 个 16 位值的并行加法。需要溢出加法,即“带进位加法”,就像使用旧的“adc”x86 助记符执行的那样。 我

回答 1 投票 0

如何在Neon中实现int16查表?

我想在Neon中实现像shuffle_epi16这样的指令函数。 在 AVX2 中,我通过将 int16 拆分为两个 int8 和 shuffle_epi8 两次而不是 unpack_epi8 将它们合并到最终的 in...

回答 1 投票 0

AVX 中成对和组件之间的转换

我正在为 AVX/AVX2 编写一个双精度算术库。我遇到的问题之一是非 Simd 和 Simd 版本具有不同的内存布局。 // 成对的 结构 Float64x2 { ...

回答 1 投票 0

未知类型名称 __m256 - AVX 的英特尔内在函数无法识别?

我正在尝试测试一些英特尔内部函数,看看它们是如何工作的。因此,我创建了一个函数来为我执行此操作,这是代码: 无效 test_intel_256() { __m256 资源,vec1,vec2; __M256_MM_SET_PS(

回答 2 投票 0

AVX MaskLoad/MaskStore 性能

通常,当在可能无法按寄存器大小完全划分的大型数据数组上编写类似 SIMD 的函数时,您可以使用 SIMD 进行批量处理,然后使用类似标量执行最后一点...

回答 1 投票 0

处理 AVX-512 32 位块减法中的借位传播

我正在开发一个项目,需要在 C 中使用 AVX-512 减去分割成 32 位块的大整数。我当前的实现可以执行减法,但我在处理时遇到麻烦...

回答 1 投票 0

AVX 与字节以外的类型混洗

shuffling 的 api 仅支持 byte 和 sbyte // // 概括: // __m256i _mm256_shuffle_epi8 (__m256i a, __m256i b) // // VPSHUFB ymm, ymm, ymm/m256 // // 参数: ...

回答 1 投票 0

AVX2 在生成 uint 的同时消耗字节?

慢慢学习SIMD,但在尝试用SIMD解决问题时,仍然有一些方面我无法理解。其中之一是当输入小于

回答 1 投票 0

AVX 和 AVX2 之间的区别

下面是 AVX2 中矩阵乘法的实现。我使用的机器仅支持 AVX,因此我尝试使用 AVX 实现相同的配置。 然而,我在破译方面遇到了困难

回答 1 投票 0

使用 AVX 矢量警告编译旧版 GCC 代码

我一直在尝试在谷歌上搜索,但找不到任何有用的东西。 typedef int64_t v4si __attribute__ ((vector_size(32))); //警告:未启用 AVX 的 AVX 矢量返回会更改 ABI [-...

回答 1 投票 0

将半字节解包为字节 - 直接指令/实现和保持符号的有效方法

const __m128i 掩码 = _mm_set1_epi8(0x0F); const __m128i vec_unpack_one = _mm_and_si128(vec, 掩码); const __m128i vec_unpack_two = _mm_and_si128(_mm_srli_epi16(vec, 4), mask); 我在这里有一个...

回答 1 投票 0

指令中的 AVX 舍入

我注意到,使用 AVX,可以从 MXCSR 寄存器获取舍入模式,并且可以通过指令 (EVEX.RC) 抑制此默认值,从而允许指令指定舍入模式 w...

回答 1 投票 0

在 __mm128 寄存器中设置最后一个值

所以我有一组具有混合值的数据用于打包目的,如下所示: {(Point_x, Point_y, Point_z, 标量),(Point_x, Point_y, Point_z, 标量),(Point_x, Point_y, Point_z, 标量),...}...

回答 1 投票 0

std::sort、std::accumulate、std::memcpy 可以因为 -mavx / -mavx2 标志而向量化吗?

我有一个使用 Clang 编译器在 -mavx/-mavx2 标志下编译的 C++ 源文件。 有些函数有 AVX2 实现,但有些只是纯粹的 std 调用。 我想知道可以 std::

回答 1 投票 0

比较两个 __m256i 变量的 less(总排序)

对于许多算法,我们需要一个小于运算符。我如何使用 __m256i 变量进行该操作?我只关心总排序,而不关心它在数学意义上是否“正确”......

回答 1 投票 0

如何优化小型固定大小数组中的搜索?

我想找到 16 字节数组中第一次出现的字节。如果我编写一个简单的版本(使用迭代器或手动循环),rustc 似乎不会矢量化(https://godbolt.org/z/

回答 1 投票 0

Avx2 内在函数不使用所有可用的寄存器。 .NET 8

我使用 SIMD 优化了某些算法,使得它们与 L1 缓存相比具有延迟限制。由于只有 C# 编译器知道的原因, said 莫名其妙地发出只使用 ym 的代码...

回答 1 投票 0

在 Linux 信号处理程序中,x86 扩展状态将始终采用 XSAVE 格式,还是也可以采用 XSAVEC 格式?

在 x86-64 上,当 Linux 用户模式程序崩溃时,但有一个用于该崩溃的信号处理程序,AVX 扩展状态是否始终以 XSAVE 格式保存到堆栈中,或者可以以 XSAVEC 格式保存到堆栈中(“

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.