c++ - 良好的可移植 SIMD 库

标签 c++ open-source cross-platform simd

任何人都可以推荐可移植的 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/

相关文章:

html - 在 Electron 应用程序中将 div 内容从浏览器窗口中移出

c++ - 使用 std::initializer_list[] 作为可变长度列表的常量列表

open-source - 哪个开源许可证没有 fork

r - 在 Windows 上的 rStudio 上将 r markdown 编织为 pdf 时出现错误 43

java - 需要帮助将 c# 加密转换为 java (android) 加密以实现交叉兼容性

python - 什么是 Python 或 Perl 中好的开源 pastebin?

c++ - 如何知道来自文本文件的输入是否是 C++ 中的有效数字

C++ 在这种情况下如何使用 strtok

c++ - C++ 中的继承、范围和模板构造函数

c# - 寻找一个开源的绘画风格程序作为游戏编辑器的基础