这补充了早先关于可用、快速 C++ 矩阵库的问题。
我查看了Java Matrix Benchmark,似乎 java 矩阵库的性能无处不在。Apache Commons Math 库似乎是一个简单的解决方案,但我很好奇其他人的建议。
具体来说,我很好奇哪些库比其他库更容易/性能更高,和/或 Java 库编写者是否最好只使用 JNI 调用现有的、开发更好的本机矩阵库。(尽管这似乎会使代码的可移植性降低或设置起来更麻烦。)
这补充了早先关于可用、快速 C++ 矩阵库的问题。
我查看了Java Matrix Benchmark,似乎 java 矩阵库的性能无处不在。Apache Commons Math 库似乎是一个简单的解决方案,但我很好奇其他人的建议。
具体来说,我很好奇哪些库比其他库更容易/性能更高,和/或 Java 库编写者是否最好只使用 JNI 调用现有的、开发更好的本机矩阵库。(尽管这似乎会使代码的可移植性降低或设置起来更麻烦。)
一般来说,如果您关心性能,那么使用 JNI 几乎总是更好。快速 BLAS 的 JNI 接口由英特尔数学内核库实现,如果您正在考虑跨平台商业产品,这将是一个选项。如果您正在寻找快速的开源产品,您可能需要考虑jblas,它试图成为多平台(有几个漏洞),并包装了 ATLAS,这是一个相当快的 BLAS 开源实现。
您的里程将根据您正在执行的特定矩阵运算以及矩阵的大小而有所不同。
ND4J.org - 它具有在使用本机或 GPU 的分布式平台上操作 n 维数组的工具。http://nd4j.org/、https://github.com/deeplearning4j/nd4j [编辑:ND4J、Deeplearning4j 和其他相关库于 2017 年 10 月贡献给 Eclipse 基金会。https: //projects.eclipse.org/提议/eclipse-deeplearning4j]