cuda - 使用 cuBLAS-XT 处理大输入量

标签 cuda cublas

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

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

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

最佳答案

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

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

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

关于cuda - 使用 cuBLAS-XT 处理大输入量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40440074/

相关文章:

在查找数组的最大元素时比较 2 种不同架构上的 2 种不同场景

tensorflow - 首先 tf.session.run() 的执行与以后的运行截然不同。为什么?

python - cuBLAS Dgemm 产品与 python

c++ - CUDA,Memcpy 中的 "illegal memory access was encountered"

c++ - 是否可以在 CUDA 中并行处理二叉树数组?

c++ - 如果我使用 BLAS/cuBLAS 以使其性能优于普通 C/CUDA,矩阵应该有多大?

cuda - 在内核中调用 cublas

python - 无法创建 cudnn 句柄 : CUBLAS_STATUS_ALLOC_FAILED

python - 如何使用 Python 和 Numba 获取 GPU 中的 CUDA 内核数量?

c++ - CUDA中的顺序编程