simd 相关问题

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

打印 __m128i 变量

我正在尝试学习使用内在函数进行编码,下面是一个执行加法的代码 使用的编译器:icc #包括 #包括 int main() { __m128i a =

回答 4 投票 0

如何将使用 Math.round 和整数值 FP 双精度的余数的代码调整为使用 SIMD 指令的 Java 代码?

我正在尝试调整此java代码以与SIMD指令兼容。 int[] arr1 = {50002, 51000, 52040, 53078, 54065, 55004, 56077, 57073, 58020, 59000, 60095, 61046, 62051, 63...

回答 1 投票 0

在 Rust 中从 exe 中提取图标?

我有一个exe的路径。 如何获取其中包含的图像的 Vec>? 我可以使用特定于 Windows 的 API。 我也在使用 Bevy,所以数学结构是首选......

回答 1 投票 0

AVX512 中 _mm256_sign_epi8 的等效函数

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

回答 1 投票 0

在字节数组上,4 个字节的点积组与 4 个小常量(有效地使用 SIMD)?

我有一个特殊的要求需要有效地满足。 (SIMD,也许?) src 是一个字节数组。数组中每组 4 个字节需要处理为: 乘以...的低半字节

回答 1 投票 0

使用 SSE 和 NEON 进行外环矢量化

我想在 ARM NEON 和 SSE 上对以下循环进行矢量化: 对于 (int i = 0; i < n; ++i) { b[i][0] = 0.0; for (int j = 1; j < n; ++j) { b[i][j] = b[i][j - 1] + a[i][j]; } } This

回答 2 投票 0

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

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

回答 2 投票 0

用SSE指令打点产品性能:DPPS值得使用吗?

通过 SSE4.1 dpps 或使用一系列乘法来计算两个短(4 元素)向量的点积是否更快 /shufps/addps 来自 SSE 1 的指令? (对于大向量,c...

回答 1 投票 0

SIMD 性能看起来不太对劲

我一直在尝试改进本地计算机上基本循环的性能。总而言之,我有 2 个大的 float32 切片,并且希望获得将它们相乘的最佳改进...

回答 1 投票 0

simd 找到第一个大于 x 的元素

我正在学习在c++中使用SIMD,这是我尝试实现“查找大于或等于X的第一个元素”的SIMD版本。 我的问题: 可以替换reinterpret_cast吗

回答 1 投票 0

装配中的灰度滤镜不适用于较小的图像

我在汇编中编写的灰度滤镜有问题 - 较大图像上的结果很好,但是当我尝试在较小图像(例如 5x1 位图)上测试它时,而不是

回答 1 投票 0

为什么 GCC 生成有条件执行 SIMD 实现的代码?

以下代码生成使用 -O3 编译时在 GCC 12.3 中有条件执行 SIMD 的程序集。为了完整起见,代码始终在 GCC 13.2 中执行 SIMD,而从不在 cla...

回答 1 投票 0

为什么不能在 std::span 上对这个循环进行 clang 向量化,将结果写入 std::array ?

为什么 clang 17.0.1 不会对以下函数中的循环进行矢量化: 无效适应(std::span信号) { F true_val = signal.back(); F y = dot_prod(&信号[...

回答 1 投票 0

ARM64 ASIMD 内在函数将 uint8_t* 加载到 uint16x8(x3) 中?

我正在寻找一种将 8 位源数组 (uint8_t*) 中的元素加载到数据格式为 uint16x8_t 或更好的 uint16x8x3_t 的 AArch64 NEON / ASIMD 寄存器中的方法。所以基本上,每个字节......

回答 1 投票 0

如何用 SIMD 向量最佳地填充多个数组?

基本上,我有一个向量数组,我想将其“拆分”为多个具有向量值的数组,但我正在努力寻找最佳方法来执行此操作,因为这是为了性能要求...

回答 1 投票 0

有ARM Neon Gather指令吗?

有ARM Neon SIMD Gather指令吗? 我正在寻找与以下 Intel Intrinsic 指令等效的指令: _mm_i32gather_ps(blob, 索引, 4); 我可以找到相关说明,例如...

回答 1 投票 0

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

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