Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
使用 SIMD 优化一维热方程
我正在使用 CFD 代码 用于计算流体动力学 我最近有机会看到英特尔编译器在我的一个循环中使用 SSE 使该循环中的计算性能提高了近 2 倍 不过 SSE和SIMD指令的使用似乎更像是运气 大多数时候 编译器什么也不做 然后我尝试强制使用
c
Optimization
SSE
SIMD
heat
将8个16位SSE寄存器转换为8位数据
假设我有一个包含 16 位数据的 SSE 数组 1 2 3 4 5 6 7 8 现在我需要通过在前 8 个字节中仅存储 16 位数据的低字节来将此 SSE 数组转换为 8 位数据 如下所示 1 2 3 4 5 6 7 8 0 0 0 0 0
x86
intel
SSE
SIMD
通过联合访问 __m128 变量的字节是否合法?
考虑这个变量声明 union struct float x y z padding components m128 sse data 我的想法是通过分配值x y z字段 执行 SSE2 计算并通过读取结果x y z 不过 我对这是否合法有些
c
SSE
unions
使用SIMD解包8位到16位:AVX2版本混淆了顺序
我正在尝试使用 SSE2 来解压带零的文本 并将其扩展到 AVX2 这就是我的意思 假设您有这样的文本 abcd 我正在尝试使用SSE2来解压abcd into a 0b 0c 0d The 0是零 这当然适用于 16 个字符而不是 4 个
c
SIMD
SSE
avx2
最新的处理器不支持 SSSE3 指令? [关闭]
Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何不支持 SSSE3 指令的仍然相关的 CPU Intel AMD Atom 没有 SSSE3 的最新 CPU 是什么 没有 SS
x86
SSE
SIMD
instructionset
在运行时从 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
如何提高 SSE 和 AVX 的编译性能?
我的新 PC 配备 Core i7 CPU 我正在运行基准测试 包括使用 AVX 指令的较新版本 我已经安装了 Visual Studio 2013 以使用较新的编译器 因为我的上一个编译器无法完全编译完整的 SSE SIMD 操作 下面是
Linux
Windows
benchmarking
SSE
avx
SSE 4 popcount 为 16 个 8 位值?
我有以下代码 它使用标志与 GCC 进行编译 msse4但问题是弹出计数仅获取转换后的最后四个 8 位 m128i类型 基本上我想要的是计算里面的所有 16 个数字 m128i类型 但我不确定创建变量后要调用什么内部函数popA 不知何故p
gcc
Counter
SSE
intrinsics
Population
显示向量寄存器的约定
是否有显示 写入大型寄存器的约定 例如英特尔 AVX 指令集中提供的寄存器 例如 如果最低有效字节为 1 最高有效字节为 20 其他位置为 0xmm寄存器 对于按字节显示是以下首选 小端 1 0 0 0 0 20 或者这是首选 20 0 0
x86
SSE
SIMD
avx
将 __m256 的奇数元素提取到 __m128 的有效(在 Ryzen 上)方法?
是否有一种内在的或其他有效的方法将 AVX 寄存器的 64 位组件的高 低 32 位组件重新打包到 SSE 寄存器中 使用 AVX2 的解决方案就可以了 到目前为止 我正在使用以下代码 但探查器说它速度很慢锐龙 1800X Global c
c
vectorization
x8664
SSE
avx2
静态/静态局部 SSE/AVX 变量是否阻塞 xmm/ymm 寄存器?
使用 SSE 内在函数时 通常需要零向量 每当调用函数时 每次有效地调用某个异或向量指令 避免在函数内部创建零变量的一种方法是使用静态局部变量 如 static inline m128i negate m128i a static m128
c
SSE
avx
最多不能超过 50%。矩阵乘法的理论性能
Problem 我正在学习 HPC 和代码优化 我尝试复制 Goto 的开创性矩阵乘法论文中的结果 http www cs utexas edu users pingali CS378 2008sp papers gotoPaper pdf
c
Optimization
matrix
openmp
SSE
tbb::cache_aligned_allocator:使用 __m128i 获取“对非类类型成员的请求”。用户错误或错误?
我尝试使用 m128i 作为 GCC 缓存对齐向量的值类型 但出现以下错误 usr include tbb cache aligned allocator h 105 32 错误 请求 p 中的成员 tbb cache aligned al
c
gcc
compilererrors
SSE
tbb
从 RGB 到 BGRA 的快速矢量化转换
在后续关于将 RGB 转换为 RGBA ARGB 转换为 BGR 的一些问题中 我想加快RGB 转 BGRA转换为SSE 假设一台 32 位机器 并且想使用内在函数 我在对齐源缓冲区和目标缓冲区以使用 128 位寄存器时遇到困难 并寻求其他
c
OpenGL
SSE
SIMD
vectorization
如何将两个 SSE 寄存器加在一起
我有两个 SSE 寄存器 128 位是一个寄存器 我想将它们相加 我知道如何在其中添加相应的单词 例如我可以这样做 mm add epi16如果我在寄存器中使用 16 位字 但我想要的是类似的东西 mm add epi128 不存在 它将使
c
intel
SSE
avx2
用于左包装字节元素的高效 sse shuffle mask 生成
使用 sse 优化以下代码的有效方法是什么 uint16 t change1 uint8 t pSrc uint8 t pDest if change1 0x0001 pDest pSrc 0 if change1 0x0002 pDest
performance
x86
SSE
shuffle
SIMD
uint64_t 与 int64_t 的 sqrt
我注意到计算平方根的整数部分uint64 t比的复杂得多int64 t 请问有人对此有解释吗 为什么处理多一点似乎要困难得多 下列 int64 t sqrt int int64 t a return sqrt a 使用 clang 5 0
Assembly
Compilation
x86
SSE
squareroot
用于大型密集矩阵乘法的循环平铺/分块
我想知道是否有人可以向我展示如何有效地使用循环平铺 循环阻塞进行大型密集矩阵乘法 我在做C AB具有 1000x1000 矩阵 我按照维基百科上的循环平铺示例进行操作 但使用平铺得到的结果比不使用平铺的结果更差 http en wikipe
c
performance
openmp
SSE
matrixmultiplication
SSE比FPU慢?
我有一大段代码 其主体部分包含这段代码 result nx m Lx ny m Ly m Lz sqrt nx nx ny ny 1 我将其矢量化如下 一切都已经是float m128 r mm mul ps mm set ps ny nx
c
Optimization
SSE
vectorization
SIMD
SSE 寄存器返回且 SSE 禁用
我处于以下情况 我正在为不允许 SSE 指令的内核编写代码 我需要进行浮点运算 我正在针对 x86 64 平台进行编译 这是说明该问题的代码示例 int main int argc char argv double d 0 0 dbase
c
gcc
floatingpoint
SSE
«
1
2
3
4
5
6
7
...11
»