任何人都可以推荐可移植的 SIMD 库,它提供 c/c++ API,适用于 Intel 和 AMD 扩展以及 Visual Studio,GCC 兼容。我正在寻求加快诸如缩放 512x512 double 组之类的速度。 vector 点积、矩阵乘法等
到目前为止,我发现的唯一一个是: http://simdx86.sourceforge.net/但正如第一页所说,它不能在 Visual Studio 上编译。
据我收集的信息,还有英特尔 IPP 不适用于 AMD。还有来自 AMD 的 Framewave,但我在编译和链接他们的库时遇到了一些问题,他们的论坛完全死了。有人设法在任何地方使用 Framewave 吗?
谢谢。
最佳答案
既然您提到了矩阵和 vector 的高级操作,ATLAS , Intel's MKL , PLASMA , 和 FLAME可能会感兴趣。
一些 C++ 矩阵数学库包括来自 Boost、Armadillo、Eigen、IT++ 和 Newmat 的 uBLAS。 POOMA 库可能还包括其中一些内容。 This question也指MTL。
如果您正在寻找较低级别的可移植性原语,我的一位同事开发了一个围绕 SSE2、Altivec、VSX、Larrabee 和 Cell SPE vector 操作的包装器。可以在我们的 source repository 中找到,但如果您想将其作为工作的一部分进行分发,它的许可(学术)可能不合适。它还在进行重大开发,以涵盖其所针对的应用程序需求范围。
关于c++ - 良好的可移植 SIMD 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981787/