simd 相关问题

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

<C#.NET, SIMD, Low-level image processing> 通过 C#.NET 进行低级图像处理开发是不是一个坏主意?

我进行了一个测试,处理了一张800万像素的图像。在这个测试中,我循环了1,036,800次不执行任何操作,大约花费了3-5ms。只需执行 Avx.LoadVector256(srcP...

回答 1 投票 0

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

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

回答 2 投票 0

优化arm64的simd指令(mov),将交替字节打包成连续字节

我有这个V6.16b寄存器:0a,0b,0c,0d,0e,0f,07,08,0a,0b,0c,0d,0e,0f,07,08 目标是:ab,cd,ef,78,ab,cd,ef,78 我是这样做的: 电影 v7.8h, 0x04 // 04,00,04,00,04,00,04,00...

回答 1 投票 0

针对arm64优化simd指令(mov)

我有这个V6.16b寄存器:0a,0b,0c,0d,0e,0f,07,08,0a,0b,0c,0d,0e,0f,07,08 目标是:ab,cd,ef,78,ab,cd,ef,78 我是这样做的: 电影 v7.8h, 0x04 // 04,00,04,00,04,00,04,00...

回答 1 投票 0

优化SIMD版本的范围生成算法

在我的一个 C 项目中,我想快速生成具有起点、增量值和终点的双精度浮点数的一维向量。很重要...

回答 1 投票 0

如何优化测试以检查 std::array<float, 4> 是否包含超出范围的值?

我有一个 4D 向量:std::array 我想检查它的所有组件是否都在值范围内:0.0f <= X && X < 256.0f How do I check if any of the vector component...

回答 1 投票 0

使用 SIMD (ARM) 的快速位矩阵 (64x64) 转置算法

我想了解是否有一种快速方法可以使用 ARM SIMD 指令进行矩阵转置(64x64 位)。 我尝试探索ARM SIMD的VTRN指令,但不确定它的效果...

回答 4 投票 0

将 16 位有符号整数饱和为 12 位有符号

我正在使用具有 12 位签名 ADC/DAC 的 SDR,该 ADC/DAC 存储在 16 位 IQ 样本中。我想确保在所有 DSP 完成之后,样本饱和在 12 位而不是被截断...

回答 1 投票 0

gcc 向量扩展支持可变长度向量吗?

这似乎不起作用/编译 无效 vec(size_t n) { typedef char v4si __attribute__((vector_size(n))); v4si t={1}; } 有没有正确的方法来声明这一点还是不受支持?

回答 1 投票 0

在现有浮点数组上使用 SIMD 内在函数的安全高效方法

我正在学习 SSE 和 AVX,以进一步提高代码中某些计算的性能。 然而,我遇到了多种不同的方法来在 exis 上使用 SSE 指令......

回答 1 投票 0

.NET8支持Vector512,但为什么Vector达不到512位?

我的CPU是AMD Ryzen 7 7840H,支持AVX-512指令集。当我运行.NET8程序时,Vector512.IsHardwareAccelerated的值为true。但 System.Numerics.Vector 仍然...

回答 1 投票 0

在 0..1 之间将 u64 转换为 f64

我需要一个非常快速的伪随机数生成器来用于我一直在从事的项目。到目前为止,我已经实现了 xoshiro 算法,并且可以生成伪随机 u64。但是,我需要转换...

回答 1 投票 0

如何使用 C# 中的矢量化计算双精度矩阵的总和?

我有一个二维双精度数组,表示一个可能很大的矩阵,例如200x200。 我需要能够有效地计算这个矩阵的总和。我怎样才能实现这个目标...

回答 1 投票 0

我如何抽象Vector256的逻辑<T< in C# to support different hardware configurations?

C# 中的向量化。通过 Vector 类工作。有不同大小的向量,例如 Vector64/Vector128/Vector256。但我该如何使用它们呢?我用 Vector256 编写了一个 for 循环,b...

回答 1 投票 0

是否有像 scatter 这样但在寄存器之间的 SIMD 内在函数?

据我所知,如果你想做的话,有_mm_shuffle_epi8 dst[i] = a[b[i]] 但我的问题是是否有一个内在的东西 dst[b[i]] = a[i] 我希望它能够处理 8 位的 16 个元素 (

回答 1 投票 0

如何在运行时用C++区分Intel CPU各代?

SIMD 过去在 Intel CPU 上有初始化成本。因此,我正在寻找一种方法来在 C++ 运行时区分哪一代 Intel CPU 正在运行我的程序。 有没有

回答 1 投票 0

如何在Go的汇编器中更高效地将全局数据加载到NEON寄存器?

arm64 asm代码中有p256one全局数据作为示例: 数据 p256one<>+0x00(SB)/8, $0x0000000000000001 数据 p256one<>+0x08(SB)/8, $0xffffffff00000000 数据 p256one<>+0x10(SB)...

回答 1 投票 0

SIMD 编程语言

在过去的几年里,我做了很多 SIMD 编程,大部分时间我都依赖编译器内部函数(例如用于 SSE 编程的函数)或编程

回答 9 投票 0

错误:使用未声明的标识符“vmaxq_f16”

每当我尝试使用 NEON 16 位浮点内在函数时,都会收到此错误。 我不会遇到其他数据类型内在函数的任何问题。 是不是可以在 Android 上使用 NEON 16 位浮点内部函数?...

回答 2 投票 0

C++ 如何加速(使用 x86 SIMD)批量可变长度整数编码/解码(可运行基准测试)

我有这种编码方法,它的工作原理是将 16x int64_t 小块编码为 16 个标志半字节的小块,打包成 8 个字节,后跟每个输入 int64_t 的 1 个或更多字节的有效负载:

回答 2 投票 0

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