首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKL‘`dgesvd`’vs MKL `LAPACKE_dgesvd`?

MKL‘`dgesvd`’vs MKL `LAPACKE_dgesvd`?
EN

Stack Overflow用户
提问于 2017-06-05 18:00:59
回答 1查看 437关注 0票数 1

dgesvd似乎是一个带有布局LAPACK_COL_MAJORLAPACKE_dgesvd,但是看看dgesvdLAPACKE_dgesvd的示例,似乎在dgesvd示例中有一个额外的步骤,其中查询和分配了一个最佳工作区。

  1. 假设此步骤是确定输入矩阵是COL_MAJOR还是ROW_MAJOR,是否正确?
  2. 假设一旦确定了最佳工作空间,'dgesvd‘内部就会用适当的布局调用LAPACKE_dgesvd,这种假设正确吗?
  3. 如果我已经知道COL_MAJOR的矩阵布局比dgesvd更好地使用LAPACKE_dgesvd (更快/更便宜)
EN

回答 1

Stack Overflow用户

发布于 2017-06-06 06:59:04

这里有两个函数,它们引用两个不同的接口:

代码语言:javascript
复制
i.  dgesvd         : calls fortran interface
ii. LAPACKE_dgesvd : calls C interface

关于细节看看这个

  1. 不不对。正如您在第一次调用dgesvd时注意到的,lwork的值被设置为-1如这里所记载的用于计算lwork的大小。因此,如果您已经知道lwork的大小,则不需要调用它两次。对于LAPACK_COL_MAJOR,输入矩阵必须是dgesvd,因为这是fortran的默认设置。此外,也无法计算矩阵是行大写还是列大写。
  2. 不这不是真的。dgesvd是首先实现的fortran接口。
  3. 这取决于编译器的优化。如果矩阵很小,那就不重要了。对于我来说,如果它的专栏专业,我将使用fortran接口。

用于矩阵布局信息看看这个。这是C接口技术论文

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

https://stackoverflow.com/questions/44374962

复制
相关文章

相似问题

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