Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
使用 AVX 内在函数代替 SSE 并不能提高速度 - 为什么?
我已经使用 Intel 的 SSE 内在函数相当长一段时间了 并取得了良好的性能提升 因此 我希望 AVX 内在函数能够进一步加速我的程序 不幸的是 直到现在情况并非如此 可能我犯了一个愚蠢的错误 所以如果有人能帮助我 我将非常感激 我使用
c
performance
gcc
SSE
avx
适用于 AVX 和 SSE 的 Visual Studio 的 cpu 调度程序
我使用两台计算机工作 一种不支持 AVX 另一种支持 AVX 让我的代码在运行时找到我的CPU支持的指令集并选择合适的代码路径会很方便 我按照 Agner Fog 的建议制作了一个 CPU 调度程序 http www agner org o
c
VisualStudio
SSE
avx
将两个 32 位整数向量相乘,生成 32 位结果元素向量
将每个 32 位条目乘以 2 的最佳方法是什么 mm256i互相注册 mm256 mul epu32不是我正在寻找的 因为它产生 64 位输出 我想要每个 32 位输入元素都有一个 32 位结果 而且 我确信两个 32 位值的乘法不会溢出
x86
SSE
intrinsics
avx
avx2
_mm256_fmadd_ps 比 _mm256_mul_ps + _mm256_add_ps 慢?
我有一个图像处理算法来计算a b c d与AVX 伪代码如下 float a new float N float b new float N float c new float N float d new float N assign va
gcc
SSE
SIMD
avx
microoptimization
gcc 编译器开关 (-mavx -mavx2 -mavx512f) 到底有什么作用?
我在 C C 代码中明确使用了英特尔 SIMD 内在扩展 为了编译代码 我需要在命令行上指定 mavx mavx512 或类似的内容 我对这一切都很满意 然而 从阅读 gcc 手册页来看 并不清楚这些命令行标志是否也告诉 gcc 编译器尝试
gcc
SIMD
avx
instructionset
avx512
跨 AVX 通道的最佳方式是什么?
有些问题具有类似的标题 但我的问题涉及其他地方未涵盖的一个非常具体的用例 我有 4 个 128d 寄存器 x0 x1 x2 x3 我想将它们的内容重新组合在 5 个 256d 寄存器 y0 y1 y2 y3 y4 中 以准备其他计算 on
c
x86
SSE
SIMD
avx
使用 GCC 为 Linux 设备驱动程序编译 Intel AVX 内联
我在 corei7 上的 ubuntu 上运行 gcc 版本 4 8 2 从谷歌搜索中找到了有关 AVX 内在函数的信息 但我不确定这组内在函数是否可以用于 Linux 设备驱动程序并进行编译 如果可以的话 这里的任何人都可以告诉我 mak
gcc
Linuxkernel
linuxdevicedriver
SSE
avx
使用 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
对于Intel Haswell上的XMM/YMM FP操作,可以使用FMA代替ADD吗?
这个问题适用于 Haswell 上带有 XMM YMM 寄存器的打包 单精度浮点运算 所以根据awesome awesome table http www agner org optimize instruction tables pdf由
SSE
avx
throughput
FLOPs
fma
如果您的程序+库不包含 SSE 指令,那么使用 VZEROUPPER 有用吗?
我明白使用它很重要VZEROUPPER混合 SSE 和 AVX 代码时 但如果我只使用 AVX 和普通 x86 64 代码 而不使用任何旧版 SSE 指令怎么办 如果我从未在代码中使用单个 SSE 指令 是否有任何性能原因导致我需要使用VZ
performance
Assembly
x86
avx
microoptimization
对整数向量使用 _mm_shuffle_ps 的影响
SSE内在函数包括 mm shuffle ps xmm1 xmm2 immx它允许人们从中选择 2 个元素xmm1与 2 个元素连接xmm2 然而 这是针对浮点数的 由 ps 单个包装 但是 如果你转换你的压缩整数 m128i 那么你可以使
SSE
avx
在C中使用AVX实现矩阵运算
我正在尝试使用 AVX 实现以下操作 for i 0 i
c
matrix
matrixmultiplication
SIMD
avx
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
使用 clang/g++ 时 __m256i 数组出现分段错误
我正在尝试生成数组 m256i在另一个计算中重用 当我尝试这样做时 即使使用最小的测试用例 我也会遇到分段错误 但前提是代码是使用 g 或 clang 编译的 如果我使用 Intel 编译器 版本 16 0 编译代码 则不会发生分段错误 这
c
Clang
avx
ICC
如何优化双重解引用?
非常具体的优化任务 我有3个数组 const char 输入磁带 const int inputOffset 以四个为一组 char 输出磁带输出 我必须根据以下 5 个操作从输入组装输出磁带 int selectorOffset inpu
Algorithm
Assembly
Optimization
SSE
avx
使用 SIMD (System.Numerics) 编写向量和函数并使其比 for 循环更快
我编写了一个函数来将 a 的所有元素相加double 使用 SIMD 的数组 System Numerics Vector 并且性能比朴素方法差 在我的电脑上Vector
c
Arrays
performance
SIMD
avx
我在理解 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
SSE 和 AVX MoveMask 的用途是什么
问题 MoveMask 的目的或意图是什么 学习如何使用 x86 x86 64 汇编 SSE AVX 的最佳地点是哪里 我可以更有效地编写代码吗 提问原因 我有一个用 F for NET 编写的使用 SSE2 的函数 我使用 AVX2 写了
NetCore
F
x86
SSE
avx
1
2
3
4
5
6
»