Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
跨 AVX 通道的最佳方式是什么?
有些问题具有类似的标题 但我的问题涉及其他地方未涵盖的一个非常具体的用例 我有 4 个 128d 寄存器 x0 x1 x2 x3 我想将它们的内容重新组合在 5 个 256d 寄存器 y0 y1 y2 y3 y4 中 以准备其他计算 on
c
x86
SSE
SIMD
avx
SSE、内在函数和对齐
我使用大量 SSE 编译器内在函数编写了一个 3D 矢量类 一切都工作正常 直到我开始使用 new 来实例化具有 3D 向量作为成员的类 我在发布模式下经历了奇怪的崩溃 但在调试模式下却没有 反之亦然 因此 我阅读了一些文章 并认为我需要将
c
Alignment
SSE
intrinsics
在 SIMD 操作上下文中,非压缩指令和压缩指令有什么区别?
在 SIMD 操作上下文中 非压缩指令和压缩指令有什么区别 我正在阅读一篇关于优化 SSE 代码的文章 http www cortstratton org articles OptimizingForSSE php batch http w
SSE
SIMD
使用 GCC 为 Linux 设备驱动程序编译 Intel AVX 内联
我在 corei7 上的 ubuntu 上运行 gcc 版本 4 8 2 从谷歌搜索中找到了有关 AVX 内在函数的信息 但我不确定这组内在函数是否可以用于 Linux 设备驱动程序并进行编译 如果可以的话 这里的任何人都可以告诉我 mak
gcc
Linuxkernel
linuxdevicedriver
SSE
avx
用于读/写 XMM 和 YMM 寄存器的内联汇编代码?
我有 2 个变量来模拟 X86 XMM 和 YMM 如下所示 uint64 t xmm value 2 uint64 t ymm value 4 现在我想使用内联汇编来读取和写入 XMM YMM 寄存器 如何编写GCC内联汇编来复制xmm
gcc
Assembly
SSE
inlineassembly
使用 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
SSE,行主要与列主要性能问题
出于个人和娱乐目的 我正在使用 SSE 4 1 编写一个 geom 库 我花了最后 12 个小时试图理解处理行主要与列主要存储矩阵时的性能问题 我知道 Dirext OpenGL 矩阵是以行主顺序存储的 因此对我来说 将矩阵按行主顺序存储会
c
performance
matrix
SSE
C++ 错误:“_mm_sin_ps”未在此范围内声明
我正在尝试对将函数应用于数组的不同方法进行基准测试 why is mm sin ps在我的范围内不知道但是 mm sqrt ps is 我怎样才能让它知道 并且编译没有错误 include
c
Optimization
SSE
SIMD
intrinsics
调用always_inline‘_mm_mullo_epi32’时内联失败:目标特定选项不匹配
我正在尝试使用 cmake 编译 C 程序 该程序使用 SIMD 内在函数 当我尝试编译它时 出现两个错误 usr lib gcc x86 64 linux gnu 5 include smmintrin h 326 1 错误 调用alwa
c
CMake
x86
SSE
SIMD
SSE加载和添加
假设我有两个由两个类型数组表示的向量double 每个尺寸为2 我想添加相应的位置 所以假设向量i0 and i1 我想补充一下i0 0 i1 0 and i0 1 i1 1 一起 由于类型是double 我需要两个寄存器 诀窍是把i0 0
c
x86
SSE
SIMD
intrinsics
对于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
1
2
3
4
5
6
...10
»