56得票5回答
GNU C++的SSE、SSE2和SSE3是什么?

有没有一个简单的教程可以让我在GNU C++中快速掌握SSE、SSE2和SSE3技术?如何在SSE中进行代码优化?

52得票8回答
如何确定内存是否对齐?

我是新手,关于使用SSE/SSE2指令优化代码的方面我还没有太多掌握。据我所知,一个常见的SSE优化函数长这样:void sse_func(const float* const ptr, int len){ if( ptr is aligned ) { for(...

52得票5回答
哪里可以找到官方参考列表,列出 SSE 内置函数的操作?

是否有官方参考文献列出GCC的SSE内置函数的操作,即在<*mmintrin.h>头文件中的函数?

52得票5回答
开始使用Intel x86 SSE SIMD指令

我希望了解更多关于使用SSE的知识。 除了阅读Intel® 64和IA-32体系结构软件开发手册,还有哪些学习方法? 主要我对使用GCC X86内置函数感兴趣。

49得票6回答
AVX2根据掩码进行左侧打包的最高效方法是什么?

如果你有一个输入数组和一个输出数组,但你只想写入那些满足特定条件的元素,那么在AVX2中最高效的方法是什么? 我在SSE中看到过这样的做法: (来源:https://deplinenoise.files.wordpress.com/2015/03/gdc2015_afredriksson_s...

48得票4回答
ARM Cortex-A8:VFP和NEON有什么区别?

在ARM Cortex-A8处理器中,我知道NEON是什么,它是一个SIMD协处理器。但是VFP(向量浮点)单元,也是一个协处理器,它是否作为SIMD处理器工作?如果是,哪个更好用?我阅读了一些链接,例如- 1. Link1 2. Link2。但并不是很清楚它们的意思。它们说VFP从来没有被设...

46得票2回答
为什么np.dot比np.sum快那么多?

为什么np.dot比np.sum快那么多?根据这个答案,我们知道np.sum很慢,有更快的替代方法。 例如: In [20]: A = np.random.rand(1000) In [21]: B = np.random.rand(1000) In [22]: %timeit np....

43得票1回答
MOVDQA和MOVAPS x86指令的区别是什么?

我正在查看英特尔数据手册:Intel® 64 和 IA-32 架构软件开发人员手册,我无法找到以下两个指令之间的区别: MOVDQA: 移动对齐双倍长字 MOVAPS: 移动对齐打包单精度 在英特尔数据手册中,我可以找到这两个指令的通用描述: 该指令可用于从 128 位内存位置...

42得票2回答
CPU SIMD和GPU SIMD有何不同?

GPU使用SIMD模型,即同一部分代码将并行执行,并应用于数据集的各个元素。 然而,CPU也使用SIMD,并提供指令级并行性。例如,据我所知,类似SSE的指令将以并行方式处理数据元素。 虽然SIMD范式在GPU和CPU中似乎被不同地使用,但是GPU是否比CPU具有更强的SIMD能力? C...

41得票8回答
为什么strcmp没有进行SIMD优化?

我尝试在一台x64计算机上编译这个程序:#include <cstring> int main(int argc, char* argv[]) { return ::std::strcmp(argv[0], "really really really really r...