avx 相关问题

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

AVX 中缺少字节粒度屏蔽存储

我正在将代码从 SSE 迁移到 AVX。该代码使用_mm_maskmoveu_si128,它根据掩码有条件地存储16个字节。 AVX 等效项是 32 字节的 _mm256_maskmoveu_si256,但是这个

回答 1 投票 0

AVX 缺少蒙面商店

我正在将代码从 SSE 迁移到 AVX。该代码使用_mm_maskmoveu_si128,它根据掩码有条件地存储16个字节。 AVX 等效项是 32 字节的 _mm256_maskmoveu_si256,但是这个

回答 1 投票 0

C simd AVX1 m256 水平最大最小标准化

我自己弄清楚了,没有找到avx1的任何答案(没有avx2)。 因此,这是未来寻求答案的人的答案。 8-float m256 max,然后可用于标准化,因为 _max 将是...

回答 1 投票 0

如何将位对从 uint64_t 解压缩为 __m256i?

考虑 uint64_t,其中每个连续的 2 位都是一个数字:b00 代表 0,b01 代表 1,b11 代表 -1,b10 未使用(从未发生过,假设没有对其进行处理)。 如何将这样的uint64_t解压成_...

回答 1 投票 0

如何通过变量进行 AVX shuffle

我想通过指令实现固定的查找表搜索。 指令 _mm_shuffle_epi32(table, index) 适合我的要求。但它需要一个即时号码。 如果我想使用类似的

回答 1 投票 0

gcc c++ 协程运行 avx SIMD 代码,但会导致 SIGSEGV

c++ 协程运行 avx SIMD 代码,但会导致 AVX2 和 AVX512 出现 SIGSEGV #定义AVX512 0 #定义 AVX2 1 #定义SSE 0 HelloCoroutine hello(int& index, int id, int group_size) { 无符号 r...

回答 1 投票 0

c++ 协程运行 avx SIMD 代码,但导致 SIGSEGV

c++ 协程运行 avx SIMD 代码,但会导致 AVX2 和 AVX512 出现 SIGSEGV #定义AVX512 0 #定义 AVX2 1 #定义SSE 0 HelloCoroutine hello(int& index, int id, int group_size) { 无符号 r...

回答 1 投票 0

为什么(V)SHUFPS不在Intel的恒定时间指令表中?

今年早些时候,英特尔发布了一系列保证不对其数据操作数具有时序依赖性的指令。 (最初建议只有当 D...

回答 1 投票 0

混合 4 宽和 8 宽指令是否会严重损害性能?

我有这个 AVX 代码,它的运行速度比 SSE4 版本慢得多,我正在尝试找出原因。 SSE4 中的这个小循环: (gcc 13.1 的汇编) .L6: movaps xmm1, XMMWORD PTR [rbx+rsi] ...

回答 0 投票 0

如何最有效地将包含 32 个无符号 8 位整数的 __m256i 向量转换为四个 32 位浮点数的 __m256 向量?

如果我有一个包含 32 个无符号 8 位整数的 __m256i 向量,我怎样才能最有效地解包和转换它以便我得到四个 __m256 向量,每个向量包含八个 32 位浮点数? 我想...

回答 0 投票 0

SIMD:如何使用其索引在 4 个 __m256d 寄存器中找到最小值

我有 4 个 _m256d,如何找到所有 16 个值中的最小值? 我怎么知道最小值来自哪个 __m256d 变量?它是哪个元素?假设

回答 1 投票 0

C++ 编译器给出不同的 NaN 符号,用于在 AVX SIMD 代码中从自身减去 +-Infinity 或 +-NaN 的不断传播

我正在研究如何检测 SIMD 寄存器的哪些通道中浮点数是 +/- 无穷大或 +/- nan。在运行时看到一些奇怪的行为后,我决定把东西扔进 Godbolt

回答 1 投票 0

C++ 编译器给出不同的 NaN 符号,用于在 AVX SIMD 代码中从自身减去 Infinity 或 NaN 的不断传播

我正在研究如何检测 SIMD 寄存器的哪些通道中浮点数是 +/- 无穷大或 +/- nan。在运行时看到一些奇怪的行为后,我决定把东西扔进 Godbolt

回答 0 投票 0

在 Intel Xeon 上非临时负载的 MMIO 性能不佳

我看到 vmovntdqa 非临时负载的内存 (WC) 读取性能不佳 在 Intel Xeon E-2224 系统上的指令,但在 AMD 上表现出色 EPYC 3151 系统。为什么会有这么大的差异...

回答 0 投票 0

使用 AVX2 实现 _mm256_mullo_epi4 的最快方法

对于一个研究问题,我需要使用 AVX2/AVX 指令实现非常高效的 4 位乘法(只需要低 4 位)。 我目前的做法是: __m256i _mm256_mullo_epi4(合作...

回答 1 投票 0

将具有8位元素的128位AVX寄存器转换为具有32位元素的两个256位寄存器

我正在将 16 个字节的数据读入 __m128i 寄存器并作为 8 位元素处理。 稍后我需要将 16x 8 位元素转换为 16x 32 位元素。 显然这需要 512 位的

回答 1 投票 0

简单的 AVX512 循环仅快 10.6 倍,预期为 16 倍

任务是将数组 A 中的每个浮点数与数组 B 中的相应元素相乘的乘积求和。数组可能有数万个元素,并且必须运行 100,000 秒到

回答 0 投票 0

gcc:使用`-mavx -mprefer-avx128`优化单个函数

我想用-mavx -mprefer-avx128优化单个函数。基本上没有代码应该使用 AVX,除了其中一个功能:这个应该使用 AVX128。 我试过这些东西: __属性...

回答 0 投票 0

`_mm256_zeroall()` 无法初始化寄存器变量

我想像这样将所有 YMM 寄存器归零。=: #包括 void fn(float *out) { 注册 __m256 r0; _mm256_zeroall(); _mm256_storeu_ps(out, r0); } 但是 gcc/clang 给出了...

回答 1 投票 0

C++优化矩阵乘法微内核L1缓存使用

我的任务是实现一个优化的矩阵乘法微内核,它从以下代码片段开始在 C++ 中计算 C = A*B。我有一些反直觉的行为......

回答 0 投票 0

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