【问题标题】:cublas<>gemmBatched with aliased Carray parametercublas<>gemmBatched 带有别名 Carray 参数
【发布时间】:2017-01-07 18:19:33
【问题描述】:

我正在尝试使用cublas&lt;&gt;gemmBatched 实现类似 scipy.sparse.bsr_matrix 的操作。不幸的是,由于我的 BSR 矩阵不是正方形,因此我无法使用 cusparse 执行此操作。

我是 cublas 的新手,我想知道为 float * Carray[] 使用别名指针(如 pointer aliasing)数组是否可以(正确性和性能方面)

例如

/* given float * out as the real output array */
float * Carray[] = {
  out + 1*stride, out + 2*stride, out + 3*stride,
  out + 1*stride, out + 2*stride, out + 3*stride,
  /* and repeat */
};

另外,虽然我很确定如果我使用别名 AarrayBarray 会是正确的,但对性能有影响吗?

谢谢!

【问题讨论】:

    标签: cuda cublas


    【解决方案1】:

    一般来说,CUBLAS 中的这种别名没有问题。事实上,这是处理子矩阵的正常方式,大多数 LAPACK 风格的求解器广泛使用指针索引或别名来对矩阵执行子块操作。

    我不认为以这种方式工作会降低性能,至少对于批处理求解器而言,尽管唯一可以确定的方法是通过基准测试,这可能对你自己进行测试很简单。

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 2011-03-20
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 2015-11-13
      • 2020-07-19
      相关资源
      最近更新 更多