simd 相关问题

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

C++ 使用SIMD优化物理模拟欧拉方法的正确方法

我正在尝试优化一个循环,该循环只需将速度列表应用于具有时间步长的位置列表。 我目前有这个: 双* _p = reinterpret_cast(_position); 双...

回答 1 投票 0

如何使用SVML指令[重复]

我正在尝试使用SIMD计算指数函数。我发现了这个函数:https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_exp_ps&expand=2136 我已经

回答 1 投票 0

使用 SSE2 将 unsigned int 钳位为 0x10000

我想仅使用 SSE2 指令将 32 位无符号整数钳制为固定值(0x10000)。 基本上,这个 C 代码: 如果 (c>0x10000) rc=0x10000; 下面的代码可以工作,但我想知道它是否可以......

回答 1 投票 0

使用 Rust 和 SIMD 指令实现卷积

问题的目标: 我想知道是否有人可以通过帮助我了解我是否正确使用 SIMD 指令和/或是否有更有效的编写方法来帮助我改进我的 Rust 代码...

回答 1 投票 0

当前Intel架构的单核可以执行多少次浮点乘法?

为了评估嵌入式架构的性能增益,我尝试搜索可以在 Core 2 的单个内核上执行的浮点乘法的数量,并且...

回答 1 投票 0

C++ 错误:‘_mm_sin_ps’ 未在此范围内声明

我正在尝试对将函数应用于数组的不同方法进行基准测试。 为什么是 https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=3260,2124,4779,4779&cats=Trigonometry&t...

回答 4 投票 0

如何初始化实验/simd向量?

此页面https://en.cppreference.com/w/cpp/experimental/simd仅显示了SIMD向量的这两种初始化方法: 所有元素具有相同的值:native_simd a = 1 使用 lam...

回答 1 投票 0

有没有一种有效的方法可以使用SIMD内在函数获取SIMD寄存器中的第一个非零元素?

如标题所示,如果一个256位SIMD寄存器是: 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 如何有效地获取第一个非零元素的索引(即第一个 1 的索引 2)?最

回答 2 投票 0

如何计算 ARM Neon 上的按位独占前缀奇偶校验?

我有一个特定的功能,我需要使其便携且高效。 这是简单的实现,仅供参考: 模板 常量表达式 T

回答 1 投票 0

利用和优化 SIMD 在 cython 中进行矩阵轴循环

以下 cython 3.0.8 代码正在使用 -O3 编译标志的支持 AVX2 的机器上进行编译和运行,但在从下面的 pytho 使用时不会使用任何 SIMD 指令...

回答 1 投票 0

在 cython 中利用 SIMD 进行数组循环?

以下 cython 3.0.8 代码正在使用 -O3 编译标志的支持 AVX2 的机器上进行编译和运行,但在从下面的 pytho 使用时不会使用任何 SIMD 指令...

回答 1 投票 0

如何在 cython 中利用 SIMD 进行数组循环?

以下 cython 3.0.8 代码正在使用 -O3 编译标志的支持 AVX2 的机器上进行编译和运行,但在从下面的 pytho 使用时不会使用任何 SIMD 指令...

回答 1 投票 0

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

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

回答 3 投票 0

如何防止编译器“优化”SIMD常量来查找表?

一个例子可能是最好的,所以考虑这个代码(忽略逻辑,这是无意义的): #包括 auto foo(long long const a[], size_t n) { 自动常量 v = _mm_set_epi64x(

回答 1 投票 0

_mm256_insert_epi32()没有效果

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

回答 1 投票 0

C++ SIMD 屏蔽高于分隔符位置的字节的最快方法

uint8_t 数据[] = "mykeyxyz:1234 啊啊啊啊啊”; 我的字符串行的格式为 key:value,其中 len(key) <= 16 guaranteed. I want to load mykeyxyz into a __m128i, but fill out the higher

回答 1 投票 0

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

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

回答 1 投票 0

如何在.NET 中将 Vector128<float> 转换/重新解释为 Vector128<int>?

我正在寻找无操作 x86 内在 _mm_castps_si128 的 .NET 3.0+ 等效项。如何快速将 Vector128 转换为 Vector128 以便位模式保持不变。

回答 2 投票 0

确保 std::vector 始终对齐以实现最佳 SIMD 执行的方法?

我想要 X 数量的相同大小的 std::vectors,我可以在 for 循环中一起处理它们,该循环以线性方式从开始到结束。例如: 对于 (int i = 0; i <

回答 1 投票 0

为什么简单的 FP 循环不自动矢量化,并且比 SIMD 内在函数计算慢?

(为什么?)即使使用 -03 和 -march=native 进行编译,编译器也不使用 SIMD 指令来计算总和的简单循环吗? 考虑以下两个函数: 浮点数 sum_simd(const std::

回答 1 投票 0

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