【问题标题】:How many cores/threads does cublas_sgemm uses?cublas_sgemm 使用多少个内核/线程?
【发布时间】:2015-07-25 15:06:46
【问题描述】:

我是 GPU 和并行编程的新手。 我想在不同的数据上并行执行一个函数说'A',比如x1,x2,x3 .... 'A' 调用函数 'cublas_sgemm' 。

那么我是否需要关心 cublas_sgemm 的实现?

【问题讨论】:

  • 听起来您想从自定义 CUDA 内核中调用 cublas_sgemm,对吧?为什么不想使用主机 API?
  • 简单来说,我想在不同的数据上同时调用cublas_sgemm。那么如何知道优化性能时可以调用的 cublas_sgemm 实例的最佳数量(假设我知道矩阵的最大维数)?
  • GPU 内核设计为超额订阅。它是性能所必需的。如果您有任务要在最短的时间内完成,请尽快启动所有并行操作。

标签: cuda gpgpu gpu cublas


【解决方案1】:

您无需关心 cublasSgemm 的实现。它将尽可能多地使用设备来解决问题大小。对于相当大的矩阵,它将利用整个设备。对于有效利用整个设备的任何函数,通过尝试添加额外的并行性,您不太可能观察到性能有很大提高(与仅按顺序发出 gemm 函数,并适当使用复制和计算的重叠)。

对于小型矩阵,有一个batched gemm function 应该比尝试自己管理并行性更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多