Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
对于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
对整数向量使用 _mm_shuffle_ps 的影响
SSE内在函数包括 mm shuffle ps xmm1 xmm2 immx它允许人们从中选择 2 个元素xmm1与 2 个元素连接xmm2 然而 这是针对浮点数的 由 ps 单个包装 但是 如果你转换你的压缩整数 m128i 那么你可以使
SSE
avx
有没有好的 x86 双精度小矩阵 SIMD 库?
我正在寻找一个专注于图形小型 4x4 矩阵运算的 SIMD 库 那里有很多单精度 但我需要支持单精度和双精度 我看过 Intel 的 IPP MX 库 但我更喜欢带有源代码的库 我对这些特定操作的 SSE3 实现非常感兴趣 垫4 垫4 Ma
c
SSE
SIMD
matrixmultiplication
我应该使用 SIMD 或向量扩展还是其他什么?
我目前正在开发一个开源 3D 应用程序框架c questions tagged c 2b 2b with c 11 questions tagged c 2b 2b11 我自己的数学库是这样设计的XNA数学库 http msdn micro
c
gcc
SSE
SIMD
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
使用 x64 SIMD 进行半字节改组
我知道字节改组 https www felixcloutier com x86 pshufb指令 但我想对半字节 4 位值 做同样的事情 具体来说 我想在 64 位字中混洗 16 个半字节 我的洗牌索引也存储为 16 个半字节 最有效的实施
x8664
SIMD
SSE
混洗两个 __m128i 的 64 位部分的最佳方法
我有两个 m128is a and b 我想进行洗牌 以便高 64 位a落在低 64 位dst和低 64 位b落在上64dst i e dst 0 63 a 64 127 dst 64 127 b 0 63 相当于 m128i dst mm
intel
SSE
SIMD
intrinsics
进行水平 SSE 向量和(或其他简化)的最快方法
给定一个由三个 或四个 浮点数组成的向量 对它们求和的最快方法是什么 SSE movaps shuffle add movd 总是比 x87 快吗 SSE3 中的水平相加指令值得吗 转移到 FPU 然后是 faddp faddp 的成本是多
Assembly
Optimization
floatingpoint
SSE
SIMD
高效的 4x4 矩阵乘法(C 与汇编)
我正在寻找一种更快 更棘手的方法来用 C 语言将两个 4x4 矩阵相乘 我目前的研究重点是具有 SIMD 扩展的 x86 64 汇编 到目前为止 我已经创建了一个比简单的 C 实现快大约 6 倍的函数 这超出了我对性能改进的预期 不幸的是
c
Optimization
Assembly
SSE
matrixmultiplication
有没有比加0.5f并截断转换更直接的方法将float转换为int并进行舍入?
在处理浮点数据的 C 代码中 从 float 到 int 的舍入转换相当频繁 例如 一种用途是生成转换表 考虑一下这段代码 Convert a positive float value and round to the nearest in
c
Assembly
visualstudio2015
intel
SSE
如何优化双重解引用?
非常具体的优化任务 我有3个数组 const char 输入磁带 const int inputOffset 以四个为一组 char 输出磁带输出 我必须根据以下 5 个操作从输入组装输出磁带 int selectorOffset inpu
Algorithm
Assembly
Optimization
SSE
avx
如何使用 SIMD 检查偶数/奇数通道是否在给定范围内?
Given a m128i其中存储 16char是 偶数索引车道指的是even车道 即 0 2 4 14 处的车道 奇数索引车道指的是odd车道 即 1 3 5 15 处的车道 在我的应用程序中 偶数 奇数车道必须在给定范围内 例如 假设e
x86
SIMD
SSE
如何写入LLDB中的XMM寄存器
我正在尝试使用 LLDB API 从 python 中的寄存器读取和写入值 对于通用寄存器 我一直在使用frame register register name value读取和写入寄存器值 这对我来说很成功 然而 当我接近浮点寄存器时 我
python
x86
x8664
SSE
LLDB
使用 SSE 内在函数时如何确保 NaN 传播?
我最近读到了这篇关于NaNSSE 算术运算中的值 对两个非数字 NAN 参数进行算术运算的结果是未定义的 因此 使用 NAN 参数的浮点运算将与相应汇编指令的预期行为不匹配 Source http msdn microsoft com en
c
floatingpoint
SSE
NaN
MOVDQA 和 MOVAPS x86 指令之间的区别?
我正在查找英特尔数据表 英特尔 64 和 IA 32 架构 软件开发人员手册我找不到两者之间的区别 MOVDQA 移动对齐的双四字 MOVAPS 移动对齐压缩单精度 在英特尔数据表中我可以找到这两条指令 该指令可用于从 128 位加载 XM
Assembly
x86
SSE
SIMD
MOV
GCC -msse2 不生成SIMD代码
我试图找出为什么 g 不生成 SIMD 代码 信息 GCC 操作系统 CPU gcc v gcc version 4 8 2 Ubuntu 4 8 2 19ubuntu1 cat proc cpuinfo model name Intel
c
gcc
x86
SSE
SIMD
我在理解 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
Intel 指令文档中未使用 XMM 寄存器 0
在 Intel x64 手册中 它说 32 位 SSE2 模式下有 XMM 寄存器 0 7 那么为什么 95 使用这些寄存器的指令会跳过 0 并使用 1 4 例如Intel的vol 2手册entry https www felixclout
Assembly
x86
intel
SSE
«
1
2
3
4
5
6
...11
»