simd 相关问题

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

测试xmm寄存器中的任何字节是否为0

我目前正在自学SIMD,并且正在编写一个相当简单的String处理子例程。但是,我仅限于SSE2,这使我无法利用ptest查找空终端。 ...

回答 2 投票 1

__ mm256_load_ps在调试模式下使用Google /基准引起分段错误

以下代码可以在发布和调试模式下运行。 #include constexpr int n_batch = 10240; constexpr int n = n_batch * 8; #pragma pack(32)float a [n];浮点b [n];浮动c [...

回答 1 投票 0


使用AVX-512收集/散布16位整数

我一直在尝试使用AVX512中的分散指令来计算如何分散16位整数。我所拥有的是8 x 16位整数,它们分别存储在...的每个32位整数中。...

回答 1 投票 0

如何最有效地存储__m128i / __ m256i的一部分,同时忽略开头/结尾的某些元素

我的处理器是Intel 9700K。我有__m128i或__m256i,包含char,short或int。我需要编写一个存储函数,从头开始,从头开始忽略给定数量的元素...

回答 1 投票 2

AVX2中的8位移位操作,移位为零

是否有任何方法可以在AVX2中重建_mm_slli_si128指令以将__mm256i寄存器移位x个字节? _mm256_slli_si256似乎只是在a [127:0]和a [255:128] .....

回答 2 投票 12

使用_mm_maskstore_epi32存储字符/短裤

我的处理器是Intel 9700K。我有__m128i或__m256i,包含char,short或int。我需要编写一个存储函数,从头开始,从头开始忽略给定数量的元素...

回答 1 投票 1

两个16位整数矢量与C ++中的AVX2的内积

我正在寻找最有效的方法来将两个对齐的int16_t数组相乘,其长度可以用AVX2除以16。在乘以一个向量x之后,我从...

回答 1 投票 0

CUDA是否有Lisp扩展名?

我刚刚注意到,W.D。Hillis的Connection-Machine的第一种语言是* Lisp,它是Common Lisp的并行结构扩展。连接机器是一个大规模并行...

回答 4 投票 17

使用AVX2查找元素索引-代码优化

我在摆弄AVX2,以编写一些代码来搜索具有14个条目的数组中的32位哈希,并返回找到的条目的索引。因为很可能绝大多数匹配都将...

回答 1 投票 1

是否可以用xor翻转32位浮点数的符号位?

我正在尝试翻转xmm0内部最小有效浮点数的符号位。我试图将-0转换为另一个xmm寄存器,并将其与xmm0进行异或。不幸的是,我已经实现了翻转符号...

回答 1 投票 0

为什么浮点寄存器与通用寄存器不同

大多数体系结构具有不同的寄存器集,用于存储规则的整数和浮点数。从二进制存储的角度来看,将对象存储在正确的位置应该没关系吗?只是1'...

回答 1 投票 1

这是从NEON uint8x16_t向量中提取字节的正确方法吗?

我是NEON内部函数的初学者,我想使用uint8x16_t和uint8x16x4_t。在使用它时,我遇到一种情况,我想从uint8x16_t中提取一个字节。 ...

回答 1 投票 0

[带有SIMD的C#中的2x2矩阵矢量乘积

我正在做一些事情,我想每秒将相同的2x2短值矩阵与不同的二维短值向量多次相乘,在这种情况下,性能很重要。 ...

回答 1 投票 0

使用simd在双精度数组中查找nan

[这个问题非常类似于:用于浮点相等比较的SIMD指令(NaN == NaN),尽管该问题集中在128位向量上,并要求识别+ ...

回答 1 投票 1

使用SIMD指令的平行二项式系数

背景我最近一直在使用一些旧代码(〜1998年)并重写其中一些代码以提高性能。以前在状态的基本数据结构中,我将元素存储在多个数组中,...

回答 1 投票 2

我的代码中无效的“去皮/剩余”循环

我具有此功能:bool插值(const Mat&im,float ofsx,float ofsy,float a11,float a12,float a21,float a22,Mat&res){bool ret = false; //输入大小(-1表示...

回答 1 投票 0

AVX512中的人口计数

我一直试图在支持AVX512的计算机上以及先前针对AVX2优化的代码上使用_mm256_popcnt_epi64。不幸的是,我遇到了函数不是...

回答 1 投票 0

为什么gcc -O3处理avx256的内在函数与gcc -O0和clang不同?

我想设置两个整数向量,并将它们与SIMD进行比较,然后稍后将此掩码用于打包浮点的混合操作。我产生了以下代码:#include #include&...

回答 1 投票 3

为什么gcc -O3处理avx256的内在函数与gcc -O1和clang不同?

我想设置两个整数向量,并将它们与SIMD进行比较,然后稍后将此掩码用于打包浮点的混合操作。我产生了以下代码:#include #include&...

回答 1 投票 2

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