首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLAS/cuBLAS如何在日常工作中处理α和β因素?

BLAS/cuBLAS如何在日常工作中处理α和β因素?
EN

Stack Overflow用户
提问于 2018-07-16 06:00:29
回答 1查看 422关注 0票数 2

许多线性代数例程都有常数,例如alpha和beta作为参数。例如,丘布拉斯?执行以下操作:

C :=α*op(A )_op( B)+ beta_C

假设我将beta设置为0。

  1. cuBLAS还会执行不必要的标量矩阵乘法和矩阵加法吗?其他库,如BLAS/LAPACK/MKL呢?
  2. 如果没有执行必要的操作:我需要做些什么来确保这一点,还是自动避免?
  3. 对于alpha/beta是否还有其他的优化值?例如,假设我设置了beta=1,那么会跳过beta操作吗?
  4. 为什么cuBLAS文档BLAS文件在DGEMM中将这些因素指定为const double,而在示例中则将double值传递给它们?有什么关系呢?

如果这些库以我所描述的方式浪费操作,我会感到惊讶,但除了提到的cuBLAS文档之外,我没有发现任何关于它的明确讨论:

如果beta == 0,那么C不一定是有效的输入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-16 08:33:42

甚至参考实现也在这里进行优化。不管alpha或beta的值如何,都没有认真的实现来执行操作。

  1. 不,不会的。
  2. 不适用
  3. beta=0.忽略C. beta=1.跳过缩放
  4. 其原因是与FORTRAN兼容。在const之前,FORTRAN中没有F90变量。BLAS接口是在F90之前定义的,每个人都遵守约定。我想要一个C接口,有适当的关键字,看看c特定的接口,比如sblas_dgemm

以下是DGEMM的参考实现。source.html。寻找Quick return if possible.And if alpha.eq.zero.

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

https://stackoverflow.com/questions/51355427

复制
相关文章

相似问题

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