【问题标题】:Using cuBLAS-XT for large input size使用 cuBLAS-XT 进行大输入
【发布时间】:2017-03-19 07:33:05
【问题描述】:

This link 说 cuBLAS-XT 例程提供核外操作——操作数数据的大小仅受系统内存大小的限制,不受 GPU 板载内存大小的限制。这意味着只要输入数据可以存储在 CPU 内存中并且输出大小大于 GPU 内存大小,我们就可以使用 cuBLAS-XT 函数,对吗?

另一方面,this link 说“在非常大的问题的情况下,cublasXt API 提供了将一些计算卸载到主机 CPU 的可能性”和“目前,只有例程 cublasXtgemm() 支持这个特征。对于输入大小大于 CPU 内存大小的问题是否存在这种情况?

我不明白这两者之间的区别!如果有人帮助我理解其中的区别,我将不胜感激。

【问题讨论】:

标签: cuda cublas


【解决方案1】:

cublasXt 的目的是允许在多个 GPU 上自动运行操作。因此,例如,矩阵乘法或其他受支持的操作可以在多个 GPU 上运行。

cublasXtgemm 例程具有特殊功能,除了在 2 个或更多 GPU 上并行化矩阵乘法之外,它还可以在 2 个或更多 GPU 上并行化它PLUS使用主机 CPU 作为额外的计算引擎。

矩阵乘法问题很容易分解,如here 所述。如果您仅在 GPU 上运行所有“块”工作,那就是 cublasXtgemm 的普通功能(仅使用 GPU)。如果您在 GPU 上运行除一个工作块之外的所有工作块并在 CPU 上运行其中一个工作块,这就是 特殊 功能。

【讨论】:

  • 感谢您的回答,我只使用一个 GPU,并且我对使用 cublasXT 感兴趣,基于第一个链接所说的“操作数数据的大小仅受系统内存大小的限制,而不是 GPU 板载内存大小”。所以我的问题是我是否想使用其他函数,如 cublasXtSsyrk(输入大小为 nxk,输出大小为 nxn),如果输出大小(nxn)大于 GPU 内存大小,我可以使用 cublasXtSsyrk 吗?
  • 我相信你应该可以。如here 所述:“cuBLAS 的 cublasXt API 公开了支持多 GPU 的主机接口:使用此 API 时,应用程序只需在主机内存空间上分配所需的矩阵。对大小没有限制的矩阵,只要它们可以放入主机内存。"
猜你喜欢
  • 2015-10-08
  • 2021-03-20
  • 2018-02-12
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 2018-02-21
  • 2013-04-23
  • 2014-04-11
相关资源
最近更新 更多