首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lapackpp vs Boost BLAS

Lapackpp vs Boost BLAS
EN

Stack Overflow用户
提问于 2011-01-02 03:52:51
回答 4查看 4.3K关注 0票数 4

首先,我是C++的新手。

我正在为我的硕士论文写一个程序,其中的一部分是以递归的方式解决回归问题。

我想解决以下问题:

代码语言:javascript
复制
Ax = y

在我的例子中,计算速度是不可忽略的,这就是我想知道Boost::BLAS是否使用

代码语言:javascript
复制
x = (A^T A)^{-1}A^Ty

将比Lapackpp (我使用gentoo)需要更少的计算时间。

附注:我能够在Lapackpp项目中找到site Class文档,但找不到示例。如果Lapack比Boost::BLAS快,有人能给我一些例子吗?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2011-01-21 06:47:22

从数值分析的角度来看,您永远不会想要编写这样的代码

  • 显式求逆矩阵,或
  • 形成回归

的法方程矩阵(A^T A

与直接解决相同问题的替代方案相比,这两种方案的工作量更大,准确性更差(而且可能更不稳定)。

每当你看到一些数学显示矩阵求逆时,应该理解为“解线性方程组”,或者分解矩阵并使用因式分解来求解系统。BLAS和Lapack都有这样做的例程。

类似地,对于回归,调用一个计算回归的库函数,或者阅读如何自己计算回归。正规方程式方法是教科书上错误的方法。

票数 4
EN

Stack Overflow用户

发布于 2011-01-04 02:48:38

高级接口和低级优化是两码事。

LAPACK和uBLAS提供了高级接口和未经优化的低级实现。硬件优化的低级例程(或绑定)应该来自其他地方。一旦提供了绑定,LAPACK和uBLAS就可以使用优化的低级例程,而不是它们自己的未优化实现。

例如,ATLAS提供了优化的低级例程,但仅限于高级(3级BLAS等)接口。您可以将ATLAS绑定到LAPACK。然后,LAPACK将使用ATLAS进行低级工作。可以将LAPACK看作是一名高级经理,将技术工作委托给经验丰富的工程师(ATLAS)。uBLAS也是如此。您可以绑定uBLAS和MKL。结果将是优化的C++库。查看文档并使用google了解如何做到这一点。

票数 2
EN

Stack Overflow用户

发布于 2011-01-21 04:55:45

你真的需要用C++实现吗?例如,python/ numpy会是你的替代方案吗?对于递归回归(最小二乘),我会推荐去看麻省理工学院斯特朗教授关于线性代数的演讲和/或他的书。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4575482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档