Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
使用 SSE/AVX 获取 __m256d 中存储的值的总和
有没有办法获得存储在 m256d 变量中的值的总和 我有这个代码 acc mm256 add pd acc mm256 mul pd row vec acc in this point contains 2 0 8 0 18 0 32 0
c
Optimization
SSE
avx
avx2
AVX 中的分散内在函数
我在 Intel Intrinsic Guide v2 7 中找不到它们 您知道 AVX 或 AVX2 指令集是否支持它们吗 原始AVX指令集中没有分散或聚集指令 AVX2 添加了聚集指令 但没有添加分散指令 AVX512F 包括分散和聚集
intrinsics
avx
avx2
Ubuntu - 如何判断CPU应用程序当前是否正在使用AVX或SSE?
我目前在许多具有 GPU 的服务器上运行 BOINC 服务器运行 GPU 和 CPU BOINC 应用程序 由于 AVX 和 SSE 在 CPU 应用程序中使用时会降低 CPU 频率 因此我必须选择一起运行哪个 CPU GPU 因为某些 G
GPU
SSE
avx
avx2
boinc
AVX2浮点比较并得到0.0或1.0而不是全0或全1位
基本上 在生成的向量中 我想为所有输入浮点值 gt 1 保存 1 0 而为所有输入浮点值 float f 8 1 2 0 5 1 7 1 9 0 34 22 9 18 6 0 7 float r 8 Must be 1 0 1 1 0 1
c
SSE
SIMD
avx
avx2
我在理解 AVX shuffle 内在函数如何为 8 位工作时遇到一些问题
我正在尝试使用 mm256 shuffle epi8 将 16 位数据打包为 8 位 但我得到的结果不是我所期望的 auto srcData mm256 setr epi8 1 2 3 4 5 6 7 8 9 10 11 12 13 14
c
SSE
SIMD
avx
avx2
使用 AVX-512 或 AVX-2 对大数据进行 1 位计数(总体计数)
我有一大块内存 比如说 256 KiB 或更长 我想计算整个块中 1 位的数量 或者换句话说 将所有字节的 总体计数 值相加 我知道 AVX 512 有一个VPOPCNTDQ指令 https en wikipedia org wiki AV
Assembly
avx2
avx512
bitCount
populationcount
intel avx2 中是否有 movemask 指令的逆指令?
movemask 指令采用 m256i 并返回 int32 其中每个位 前 4 8 或所有 32 位 具体取决于输入向量元素类型 是相应向量元素的最高有效位 我想做相反的事情 取 32 其中只有 4 8 或 32 个最低有效位有意义 并获得
x86
intrinsics
avx
avx2
ICC
是否存在或将会存在 target_clones 属性的“全局”版本?
我最近玩过target clones该属性从 gcc 6 1 及更高版本可用 这非常漂亮 但是就目前而言 它需要一种有点笨拙的方法 每个想要多版本化的函数都必须手动声明一个属性 这不是最佳的 因为 它将编译器特定的内容放入代码中 它要求开发
gcc
avx
avx2
gcc6
使用SIMD解包8位到16位:AVX2版本混淆了顺序
我正在尝试使用 SSE2 来解压带零的文本 并将其扩展到 AVX2 这就是我的意思 假设您有这样的文本 abcd 我正在尝试使用SSE2来解压abcd into a 0b 0c 0d The 0是零 这当然适用于 16 个字符而不是 4 个
c
SIMD
SSE
avx2
在运行时从 simd 寄存器获取任意浮点数?
我想从 simd 寄存器访问任意浮点数 我知道我可以做这样的事情 float get const m128i a const int idx editor s note this type puns the FP bit pattern t
x86
SSE
SIMD
avx
avx2
存储8个整数的avx2指令是什么?
我想存储a中的8个整数 m256i变量为 8 x 32 位数组ints 我认为这方面的说明是 mm256 store epi32 但我收到一条错误消息 该指令甚至不存在 看看 根据您的目的地是否一致 您需要 or
c
x86
SIMD
avx2
将 __m256 的奇数元素提取到 __m128 的有效(在 Ryzen 上)方法?
是否有一种内在的或其他有效的方法将 AVX 寄存器的 64 位组件的高 低 32 位组件重新打包到 SSE 寄存器中 使用 AVX2 的解决方案就可以了 到目前为止 我正在使用以下代码 但探查器说它速度很慢锐龙 1800X Global c
c
vectorization
x8664
SSE
avx2
如何将两个 SSE 寄存器加在一起
我有两个 SSE 寄存器 128 位是一个寄存器 我想将它们相加 我知道如何在其中添加相应的单词 例如我可以这样做 mm add epi16如果我在寄存器中使用 16 位字 但我想要的是类似的东西 mm add epi128 不存在 它将使
c
intel
SSE
avx2
将整数向量转换为 0 到 1 之间浮点数的最快精确方法
考虑一个随机生成的 m256i向量 有没有更快 更精确的方法将它们转换为 m256之间的浮点数向量0 包括在内 和1 仅 比除以float 1ull lt lt 32 这是我到目前为止所尝试过的 其中iRand是输入和ans是输出 cons
c
Random
vectorization
SIMD
avx2
如何使用 avx 指令将 float 向量转换为短整型?
基本上我如何使用 AVX2 内在函数编写与此等效的内容 我们在这里假设result in float属于类型 m256 while result属于类型short int or short int 8 for i 0 i lt 8 i re
c
gcc
avx
avx2
在 AVX 寄存器内循环字节的有效方法
摘要 tl 博士 除了进行 2 倍移位并将结果混合在一起之外 还有什么方法可以按位旋转 YMM 寄存器中的字节 使用 AVX 对于 YMM 寄存器中的每 8 个字节 我需要向左旋转 7 个字节 每个字节都需要比前一个字节向左旋转一位 因此
c
SSE
SIMD
avx
avx2
如何将 8 个打包的 32 位整数(在 __m256i 中)的 +-1 符号打包为 64 位整数的字节?
给定一个 m256i打包 32 位有符号整数的价值 如何获取每个字节所在的单个 64 位数字1如果原始的相应 32 位有符号整数 m256i大于或等于0 并得到 1如果该 32 位整数是负数 AVX2 可能还有 AVX512 很有趣 这是另
c
performance
SIMD
intrinsics
avx2
在 AVX 中寻找绝对
在其中一个解决方案中 他 她发现abs inp 对于 AVX 向量 m256 符号位 mm256 set1 ps 0 0f m256 inp abs mm256 andnot ps sign bit inp 其背后的逻辑是什么 SSE AV
floatingpoint
IEEE754
avx
avx2
absolutevalue
AVX2 有符号 8 位元素的整数乘法,产生有符号 16 位结果?
我有两个 m256i 向量 填充了 32 个 8 位整数 像这样的东西 int8 a0 new int8 32 2 int8 a1 new int8 32 3 m256i v0 mm256 loadu si256 m256i a0 m256
c
SIMD
avx
avx2
如何实现四个 i8 元素组的高效 _mm256_madd_epi8 点积?
Intel 提供了一个名为 mm256 madd epi16 的 C 风格函数 基本上 m256i mm256 madd epi16 m256i a m256i b 将 a 和 b 中的压缩有符号 16 位整数相乘 生成中间有符号 32 位
c
x86
SIMD
intrinsics
avx2
1
2
3
»