- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 BLAS.scala 中找到了以下代码:
// For level-1 routines, we use Java implementation.
private def f2jBLAS: NetlibBLAS = {
if (_f2jBLAS == null) {
_f2jBLAS = new F2jBLAS
}
_f2jBLAS
}
我认为原生 blas 比纯 Java 实现更快。
那么spark为什么选择f2jblas作为level 1例程,有什么我不知道的原因吗?
谢谢!
最佳答案
答案最有可能在 netlib-java 的自述文件的性能 部分找到。存储库。
Java has a reputation with older generation developers because Java applications were slow in the 1990s. Nowadays, the JIT ensures that Java applications keep pace with – or exceed the performance of – C / C++ / Fortran applications.
接下来的图表显示了各种 BLAS 例程的详细基准测试结果,包括纯 Java(从带有 f2j 的 Fortran 翻译而来)和 ARM 上的 Linux 和 x86_64 上的 macOS 上的原生 BLAS。 ddot
基准测试表明,在 x86 上(ARM 的 JRE 似乎没有 JIT 功能)F2J 对于较长的向量大小与引用 native BLAS 实现的性能相当,甚至在较短的向量大小方面优于它。这里需要注意的是,JIT 在几次调用后启动,这不是问题,因为大多数 ML 算法本质上都是迭代的。大多数 1 级例程都相当简单,并且 JIT 编译器能够生成优化良好的代码。这也是高度优化的 BLAS 实现中的调优工作进入第 2 级和第 3 级例程的原因。
关于scala - 为什么 spark blas 在 1 级例程中使用 f2jBLAS 而不是原生 BLAS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825022/
double [][] AdjacencyMat = new double[baseSize][baseSize]; for (int i = 0; i (DoubleMatrix.j
我在cmd中运行groovy脚本,出现以下错误: unable to resolve class org.jblas.DoubleMatrix 相关代码如下: import org.apache.co
我已经使用 NVBLAS 编译了 jBLAS,解决方案有点老套,因为配置脚本没有正确找到库。我像这样手动编辑了 jBLAS 的 configure.out 文件,以包含 NVBLAS 库。 BUILD
基本上,我想计算属于 ComplexDoubleMatrix 类的矩阵的逆,但我没有找到像 inverse() 或 inv() 这样的函数,有没有人知道如何计算 a 的逆矩阵?先感谢您。 我的最终目标
我正在使用 Java + Jblas(首次使用)并尝试将两个矩阵相乘。一个是 163x4,另一个是 4x1 矩阵。我希望这种乘法的结果是一个 163x1 矩阵。但是使用: FloatMatrix a
我在 DSE 上使用 spark 0.91 和 MLlib 0.91 当尝试在独立模式下运行以下代码时 val parsedData = sc.parallelize((1 to 1000). m
我是一名优秀的程序员,十分优秀!