simd 相关问题

单指令,多数据(SIMD)是使每个指令在小块或数据元素矢量上操作的概念。 CPU矢量指令集包括:x86 SSE和AVX,ARM NEON和PowerPC AltiVec。为了有效地使用SIMD指令,数据需要采用数组结构形式,并且应该在更长的流中发生。天真的“SIMD优化”代码通常比原始代码运行速度慢。

C 代码在相对循环次数后会出现偏差,而不是绝对的

出于性能原因,我实现了(自适应)高斯滤波器的 C 函数。为了进行健全性检查,我将其与旧的 Python 实现进行了比较。一开始似乎效果很好,但后来明星......

回答 1 投票 0

快速 __m256i 位操作 - 查找或清除最高或最低设置位

我正在寻找快速代码来在 __m256i 上执行以下操作,并且希望得到帮助: 清除最低有效位(设置的最低有效位) 清除最高有效位(最

回答 1 投票 0

一些快速 __m256i 位操作 - 查找或清除最高或最低设置位

我正在寻找快速代码来在 __m256i 上执行以下操作,并且希望得到帮助: 清除最低有效位(设置的最低有效位) 清除最高有效位(最

回答 1 投票 0

一些快速的 __m256i 位运算

我正在寻找快速代码来在 __m256i 上执行以下操作,并且希望得到帮助: 清除最低有效位(设置的最低有效位) 清除最高有效位(最

回答 1 投票 0

从 simd_float4x4 中提取平移/旋转/缩放

我想提取 simd_float4x4 变换矩阵的三个分量,而不需要特定于引擎的帮助器(例如 RealityKit 的 Transform)。 我已经找到了提取平移和缩放的方法...

回答 2 投票 0

AVX 将 Nan 替换为 1.f

__m256 __c0 = _mm256_cmp_ps(__x0, 承担, _CMP_GE_OQ); 将 -Nan 放在每个 True 上。我知道这很正常。但如何将它们全部替换为 float 1.f ?

回答 1 投票 0

初始化/加载 gcc 矢量扩展的正确方法是什么

GCC/Clang 提供的向量扩展是在多种架构(如 webassemble、arm64、x64)上启用 SIMD 向量化的便捷方法。 和 使用 v8x16u = uint8_t __attribute__((vector_si...

回答 1 投票 0

Simd 不在我的 Linux 机器上:致命错误:simd/simd.h:没有这样的文件或目录

我有一个代码库,可以在我的 Mac 上编译和运行,但不能在我的远程 Linux 机器上编译和运行,我不知道为什么。 当我编译时出现错误 致命错误:simd/simd.h:没有这样的文件或目录 我是

回答 2 投票 0

如何使用AVX512转置8x8 int64矩阵

考虑包含矩阵行的 8 个 AVX512 寄存器,以便每个 64 位通道都是 8x8 矩阵的一个单元。如何在C/C++中转置这样的矩阵? 到目前为止我尝试过的:8 _mm512_i32scatter_...

回答 1 投票 0

_mm256_setr_epi64x 在使用 /arch:AVX 构建的 x86 msvc v143 上导致错误结果

EDIT2:我还减少了案例并改进了测试代码 我已经思考这个问题一周了,这可能是一个编译器错误,但我不能完全确定。 我正在使用 MSVC - ...

回答 1 投票 0

C# System.Numerics 命名空间会在 .NET8 中或不久的将来在 AVX-512 上运行吗?

考虑到 .NET8 通信中有关 AVX-512 的所有信息,对我来说,C# System.Numerics 命名空间将在支持 AVX-512 技术的服务器上进行 AVX-512 加速似乎是合乎逻辑的。豪...

回答 1 投票 0

为什么矢量化计算在较小宽度的整数类型上更快?

为什么宽度较小的整数数组的计算速度更快?为什么 8 位整数数组的计算速度比 16 位整数数组快约 4 倍,但 16 位整数数组的计算速度仅快约 2 倍...

回答 1 投票 0

如何用SIMD(SSE或AVX)替换嵌套的IF/ELSE分支?

编辑 x 2 添加了更全面的函数,它返回一个抽象寄存器类:该函数输出一个充满浮点数的寄存器。我不在乎实际长度 - SSE、AVX... - 因为 Google H...

回答 1 投票 0

.NET 4.6 中 System.Numerics.Vector<T> 中的元素总和

我无法找出如何获取 System.Numerics.Vector 类型向量中元素总和的方法。 双和(System.Numerics.Vector vect) { // 就像是 // 双...

回答 3 投票 0

如何交换 System.Numerics.Vector 中的元素

我的任务是使用 SIMD 加速中值滤波器。我找到了一个对向量元素进行排序的教程。然而,在这个例子中,向量的元素是成对交换的。然而,我还没有...

回答 2 投票 0

Vector256.Shuffle 在 .Net 7+ 中如何工作?

Avx2.Shuffle 使用 _mm256_shuffle_epi8 根据掩码对 128 位通道内的字节进行混洗,如果设置了最后一位,则将值归零。 Vector256.Shuffle 是如何工作的?与 Avx2.Shuffle 不同,它会...

回答 2 投票 0

使用C# System..Numerics.Vector<T>解包/打包位

我正在测试 .Net C# System.Numerics.Vector 类打包和解包位的功能。 我希望有 Vector 按位左移/右移功能,但目前还没有

回答 2 投票 0

C# 结构体参数和局部变量默认对齐吗?

假设我有一个如下定义的结构: [StructLayout(LayoutKind.Explicit,大小 = 16,包 = 1)] 只读结构示例 { [场偏移(0)] 公众持股量A; [场偏移(4)] 公共...

回答 1 投票 0

x86-64 SIMD 机制“比较”8 位无符号整数,给出 +1 / 0 / -1 结果的向量?

假设我有两个无符号整数(8 位)打包寄存器 a 和 b。我想比较它们并返回 +1(a > b)、0(a=b)或 -1(a < b. Alternatively, distance also works (i.e.

回答 2 投票 0

x86-64 SIMD 机制“比较”整数?

假设我有两个无符号整数(8 位)打包寄存器 a 和 b。我想比较它们并返回 +1(a > b)、0(a=b)或 -1(a < b. Alternatively, distance also works (i.e.

回答 1 投票 0

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