avx2 相关问题

AVX2(高级矢量扩展2)是x86的指令集扩展。它增加了256位版本的整数指令(其中AVX仅提供256b浮点)。

指令中的 AVX 舍入

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

回答 1 投票 0

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

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

回答 1 投票 0

有关于 AVX2 收集指令延迟的任何数据吗?

有AVX2收集延迟的数据吗? (例如访问单个缓存行的 _mm256_i32gather_ps 指令)

回答 3 投票 0

在同一个 SIMD 寄存器中连续添加值

我正在尝试将其转换为 AVX2: // 并行数组 int16_t* 数字 = ... int16_t* 容量 = ... int** 数据 = ... int* 自由指针 = ... 对于 (int i = 0; i < n; i++) { if (Nums[i] == 0)...

回答 1 投票 0

在 AVX2 计数器函数上使用 `static` 可将 MT 环境中的性能提高约 10 倍,而编译器优化没有任何变化

在 GCC 或 Clang 上使用静态内联运行时,该函数需要大约 20-35 毫秒,至少需要 O1(在 O0 上,与没有 static 关键字相同,需要 400-600 毫秒),当删除静态时,函数 tak...

回答 1 投票 0

AVX512 中 _mm256_sign_epi8 的等效函数

我正在尝试编写 AVX512 代码。在进行相同的工作时,试图在 AVX512 中寻找类似于 _mm256_sign_epi8 的函数,但无法找到等效的函数。这真的是你...

回答 1 投票 0

手动矢量化性能差异较大

我正在尝试手动向量化两个向量的点积的计算。请注意,我这样做是为了练习,并且我知道使用 BLAS 库会更合适。

回答 1 投票 0

使用AVX2是否可以实现对字数组上LZCNT的更快处理?

我需要使用 LZCNT 进行反向位扫描,字数组:16 位。 在 Intel 最新一代处理器上,LZCNT 的吞吐量为每个时钟执行 1 次。 AMD Ryzen 的吞吐量似乎...

回答 2 投票 0

使用 AVX2 和 /fp:fast 的 Intel 2022 编译器出现 Nan 问题

我正在使用 @njaffa 的另一篇文章中描述的测试工具,尝试制作一个更快更准确的 erfc() 函数,这时我遇到了一个我仍然无法完全理解的特殊错误,并且

回答 1 投票 0

所有支持AVX2的CPU都支持BMI2或popcnt吗?

从这里我了解到AVX的支持并不意味着BMI1的支持。那么AVX2怎么样:所有支持AVX2的CPU也都支持BMI2吗?另外,支持AVX2是否意味着支持...

回答 2 投票 0

所有支持AVX2的CPU都支持SSE4.2和AVX吗?

我计划实现SIMD扩展的运行时检测。是不是如果我发现处理器支持AVX2,就一定也支持SSE4.2和AVX?

回答 3 投票 0

_mm256_insert_epi32()没有效果

我开始在 Linux 上使用 GCC 12 在 x86 上编码 AVX2。一切都按预期进行。除了以下片段: #包括 #包括 __m256i aVector =

回答 1 投票 0

使用 simd 查找字符的第一个实例

我正在尝试使用 simd(AVX2 或更早版本)查找字符的第一个实例,在本例中为 '"'。我想使用 _mm256_cmpeq_epi8,但随后我需要一种快速的方法来查找是否有任何结果

回答 1 投票 0

AVX2 缩小转换,从 uint16_t 到 uint8_t

我想使用 AVX2 将 2d 数组从 16 位缩小到 8 位。有效的C++代码如下: auto * s = reinterpret_cast(i_frame.Y); 自动 * d = 缩小.data(); 对于(

回答 1 投票 0

加速嵌套循环计算 3 个数组中每对元素的交集的 popcount 的乘积

我有一个看似无辜的函数 f,它在紧密循环中调用,并导致速度瓶颈。关于如何改进它有什么见解吗? #定义N 48 // N = 47 也相关 INT...

回答 2 投票 0

使用 SIMD 移动/旋转字节向量的最快方法

我有一个 avx2(256 位)SIMD 字节向量,前面和后面都用零填充,如下所示: [0, 2, 3, ..., 4, 5, 0, 0, 0]。 前面的零有多少个未知com...

回答 3 投票 0

为什么此功能在 Intel i3-N305 上的性能比 AMD Ryzen 7 3800X 慢?

我在 Intel i3-N305 3.8GHz 和 AMD Ryzen 7 3800X 3.9GHz PC 上运行了使用 gcc-13 (https://godbolt.org/z/qq5WrE8qx) 编译的相同二进制文件。该代码使用VCL库(https://github.com/vectorclass/

回答 1 投票 0

有没有办法将 8bitX32 ymm 寄存器向右/向左打乱 N 个位置(c++)

正如标题所说,我需要一种方法将 256-avx-register 寄存器中所有元素的位置移动/洗牌 N 个位置。我发现的所有关于此的信息都使用 32 或 64 位值(

回答 2 投票 0

Bug:等效向量内部代码 c

目前我有一段 C 代码,它是用 Intel 内在函数编写的,它使用 AVX512BW + AVX512VL 和 SSE 指令。 尝试加载 16 字节数据的地方 __m128i 输入 16 =

回答 1 投票 0

使用 Rust SSE 内在函数进行浮点乘法没有加速

我正在尝试使用 Rust 中的内在函数进行实验,其中我制作了一个大的浮点数向量,然后记录将它们全部乘以一个常数所需的时间。接下来我用 SSE intrin 尝试同样的事情...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.