当做两个向量的点积时,Breeze和BLAS之间的区别是什么

时间:2017-12-23 01:25:34

标签: apache-spark breeze

Breeze和BlAS都提供API来计算两个向量的点积

对于BLAS,它是:

BLAS.ddot(int n, double[] dx, int incx, double[] dy, int incy);

对于Breeze,它是:     DenseVector.dot

我会问他们之间的区别是什么?我应该选择使用哪一个?我这样问,因为当我读取Spark MLLib代码时,看起来spark选择BLAS进行矢量计算。

1 个答案:

答案 0 :(得分:1)

通常,BLAS库使用您机器的低级功能,可根据您的配置进行高度优化。 另一方面,Breeze被构建为Scala上线性代数运算的通用优化器。

由于两者都有不同的实现(Breeze的一大特色就是利用仅向量表示),你应该使用更适合你的用例。