Breeze 和 BLAS 在做两个向量的点积时有什么区别
What's the difference between Breeze and BLAS when doing dot product of two vectors
Breeze和BlAS都提供了API来计算两个向量的点积
对于 BLAS,它是:
BLAS.ddot(int n, double[] dx, int incx, double[] dy, int incy);
对于Breeze,是:
DenseVector.dot
请问它们有什么区别?我应该选择使用哪一个?我这么问是因为我看Spark MLLib代码的时候,好像是spark选择了BLAS做向量计算。
通常,BLAS 库会使用您机器的较低级别功能,这些功能可以根据您的配置进行高度优化。
另一方面,Breeze 是作为 Scala 上线性代数运算的通用优化器构建的。
由于两者都有不同的实现(Breeze 的一大特点是使用纯矢量表示),您应该使用更适合您的用例的任何东西。
Breeze和BlAS都提供了API来计算两个向量的点积
对于 BLAS,它是:
BLAS.ddot(int n, double[] dx, int incx, double[] dy, int incy);
对于Breeze,是:
DenseVector.dot
请问它们有什么区别?我应该选择使用哪一个?我这么问是因为我看Spark MLLib代码的时候,好像是spark选择了BLAS做向量计算。
通常,BLAS 库会使用您机器的较低级别功能,这些功能可以根据您的配置进行高度优化。 另一方面,Breeze 是作为 Scala 上线性代数运算的通用优化器构建的。
由于两者都有不同的实现(Breeze 的一大特点是使用纯矢量表示),您应该使用更适合您的用例的任何东西。