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
在 SIMD 操作上下文中,非压缩指令和压缩指令有什么区别?
在 SIMD 操作上下文中 非压缩指令和压缩指令有什么区别 我正在阅读一篇关于优化 SSE 代码的文章 http www cortstratton org articles OptimizingForSSE php batch http w
SSE
SIMD
C++ 错误:“_mm_sin_ps”未在此范围内声明
我正在尝试对将函数应用于数组的不同方法进行基准测试 why is mm sin ps在我的范围内不知道但是 mm sqrt ps is 我怎样才能让它知道 并且编译没有错误 include
c
Optimization
SSE
SIMD
intrinsics
为什么矢量化通常比循环更快?
为什么在执行操作的硬件的最低级别和所涉及的一般底层操作 即 运行代码时所有编程语言的实际实现通用的事情 矢量化通常比循环快得多 计算机在循环时会做什么而在使用矢量化时不会做什么 我指的是计算机执行的实际计算 而不是程序员编写的计算 或者它有
performance
languageagnostic
vectorization
SIMD
lowlevel
调用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
有没有好的 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
在C中使用AVX实现矩阵运算
我正在尝试使用 AVX 实现以下操作 for i 0 i
c
matrix
matrixmultiplication
SIMD
avx
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
arm64 汇编:LDP 与 LD4 执行时间
假设我想用连续内存位置的值加载四个连续的 aarch64 向量寄存器 一种方法是 ldp q0 q1 x0 ldp q2 q3 x0 32 根据ARM优化指南 https static docs arm com uan0016 a cort
performance
Assembly
arm
SIMD
ARM64
使用 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
.NET Framework 上的 System.Numerics.Vector
初始化性能
System Numerics Vector 为 NET Core 和 NET Framework 带来了 SIMD 支持 它适用于 NET Framework 4 6 和 NET Core Baseline public void Sim
c
NET
NetCore
SIMD
systemnumerics
使用 SIMD (System.Numerics) 编写向量和函数并使其比 for 循环更快
我编写了一个函数来将 a 的所有元素相加double 使用 SIMD 的数组 System Numerics Vector 并且性能比朴素方法差 在我的电脑上Vector
c
Arrays
performance
SIMD
avx
如何使用 SIMD 检查偶数/奇数通道是否在给定范围内?
Given a m128i其中存储 16char是 偶数索引车道指的是even车道 即 0 2 4 14 处的车道 奇数索引车道指的是odd车道 即 1 3 5 15 处的车道 在我的应用程序中 偶数 奇数车道必须在给定范围内 例如 假设e
x86
SIMD
SSE
为什么 OpenMP SIMD 指令会降低性能?
我正在学习如何在 OpenMP Fortran 中使用 SIMD 指令 我 写了简单的代码 program loop implicit none integer i j real 8 x x 0 0 do i 1 10000 do j 1
Fortran
openmp
SIMD
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
1
2
3
4
5
6
...9
»