Breeze和BlAS都提供API来计算两个向量的点积
对于BLAS,它是:
BLAS.ddot(int n, double[] dx, int incx, double[] dy, int incy);
对于Breeze,它是:
DenseVector.dot
我会问他们之间的区别是什么?我应该选择使用哪一个?我这样问,因为当我读取Spark MLLib代码时,看起来spark选择BLAS进行矢量计算。
答案 0 :(得分:1)
通常,BLAS库使用您机器的低级功能,可根据您的配置进行高度优化。 另一方面,Breeze被构建为Scala上线性代数运算的通用优化器。
由于两者都有不同的实现(Breeze的一大特色就是利用仅向量表示),你应该使用更适合你的用例。