问题标签 [cublas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
747 浏览

matrix - CUBLAS 或支持的库,重点是初学者阅读

我正在尝试利用 GPU (nVidia Quadro NVS140M) 的强大功能来加快我项目中的一些矩阵计算。我正在阅读一些文档(编程指南、最佳实践指南和参考手册),但不确定我应该关注哪些部分。如果我能在这方面得到一些建议,那就太好了。

另外,我想知道是否有第三方维护的 SDK,例如 CuBLAS.net,可以在我坚持使用 cublas 提供的功能帮助我实现项目目标之前简化 cublas 开发过程。再次,提前感谢您的评论。

0 投票
1 回答
1695 浏览

c++ - CUBLAS 内存分配错误

我尝试按如下方式分配 17338896 个浮点数元素(大约 70 mb):

但是,我收到CUBLAS_STATUS_ALLOC_FAILED变量状态的错误消息。这是否与机器上可用的视频卡内存量(我的 128 mb)有关,或者这是否是我可以使用 cublasAlloc() 函数分配的内存量的限制(即与数量无关机器上的可用内存)?我尝试使用 cudaMalloc() 函数,但遇到了同样的问题。提前感谢您对此进行调查。

--------------添加错误再现-------------------------------- -----

0 投票
1 回答
2171 浏览

memory - CUDA 与 CuBlas 内存管理

我注意到我可以将内存块用于使用 cudamalloc() 或 cublasalloc() 函数分配的矩阵来调用 cublas 函数。使用 cudamalloc() 而不是 cublasalloc() 分配的数组的矩阵传输速率和计算速度较慢,尽管使用使用 cudamalloc() 的数组还有其他优点。为什么会这样?很高兴听到一些评论。

0 投票
3 回答
4839 浏览

boost - BLAS 和 CUBLAS

我想知道 NVIDIA 的 cuBLAS 库。有没有人有这方面的经验?例如,如果我使用 BLAS 编写 C 程序,我是否能够用对 cuBLAS 的调用替换对 BLAS 的调用?或者更好地实现一种让用户在运行时选择的机制?

如果我将 Boost 提供的 BLAS 库与 C++ 一起使用会怎样?

0 投票
1 回答
900 浏览

c++ - 视觉工作室中的cublas链接

我正在尝试在视觉工作室中使用 cublas.h。该程序无法编译,因为它找不到某些外部链接。有人可以告诉我如何链接 .dll 文件,我相信它位于 ../C/common/bin 中。

0 投票
3 回答
1956 浏览

matrix - CUDA - 简单的矩阵加法/求和运算

这应该很简单,但我找不到详尽的答案:

我需要用矩阵执行 A+B = C,其中 A 和 B 是两个未知大小的矩阵(它们可以是 2x2 或 20.000x20.000 作为最大值)

我应该使用带有 Sgemm 函数的 CUBLAS 来计算吗?

我需要可达到的最大速度,所以我想到了应该优化的 CUBLAS 库

0 投票
2 回答
6075 浏览

c++ - CUBLAS - 矩阵加法..如何?

我正在尝试使用 CUBLAS 对两个未知大小的大矩阵求和。我需要一个完全优化的代码(如果可能的话),所以我选择不重写矩阵加法代码(简单),而是使用 CUBLAS,特别是允许对 A 和 C 求和的 cublasSgemm 函数(如果 B 是单位矩阵):*C = alpha*op(A)*op(B)+beta*c*

问题是:C 和 C++ 以行优先格式存储矩阵,cublasSgemm 旨在(为了与 fortran 兼容)以列优先格式工作。您可以指定是否要先转置 A 和 B,但不能指示转置 C。所以我无法完成矩阵加法..

我不能自己转置 C 矩阵,因为该矩阵的最大尺寸类似于 20000x20000。

请问有什么办法解决吗?

0 投票
1 回答
1991 浏览

matrix - CUBLAS - 矩阵元素求幂可能吗?

我正在使用 CUBLAS(Cuda Blas 库)进行矩阵运算。

是否可以使用 CUBLAS 来实现矩阵项的求幂/均方根?

我的意思是,有 2x2 矩阵

我想要的是一个提升到给定值的函数,例如 2

并计算均方根,例如

CUBLAS 可以做到这一点吗?我找不到适合这个目标的函数,但我会先在这里请求开始编写我自己的内核。

0 投票
1 回答
9227 浏览

cuda - CUBLAS 矩阵乘法

在使用 CUDA 实现矩阵乘法之后。我试图用 CUBLAS 来实现它(感谢论坛中一些人的建议)。

我可以将方阵相乘,但是(再次是的......)我在使用非方阵时遇到了困难。唯一有效的非方阵乘法是当您改变矩阵 A 的宽度(A*B=C)时。

我没有收到任何错误,但结果矩阵返回错误值。这是我的代码(它基本上是对 simpleCUBLAS SDK 示例的改编):

有什么想法吗?另外,有没有人在 CUBLAS 中有一个矩阵乘法实现正在工作,所以我可以比较一下吗?提前致谢。

0 投票
2 回答
4463 浏览

cuda - CUDA 流的问题

我通过细分输入矩阵 (A[x/num_of_streams*y] B[x y] = C[x/num_of_streams*y]) 在单个 GPU (Tesla C2050) 上的不同流上运行 CUBLAS v2.0,但不知何故我使用 CUDA 流需要更多时间。这是代码片段:

因此,我在流和分配工作之间来回切换,期望获得更好的执行时间,但我注意到与不使用流的版本相比,流的数量越多,程序需要的时间就越多。我哪里错了?跨帖子到 Nvidia 论坛 - http://forums.nvidia.com/index.php?showtopic=209420

编辑:

我修改了我的程序如下:

当我针对 6144 的矩阵顺序分析我的程序时,我得到以下信息:

蓝色 = 内核,绿色 = 2 个流中的 cudaMemCpyAsync

当我为上述循环计时时,我得到的时间为 0.000284 秒,而不使用流的版本为 1.703289 秒(在该版本中,我也对两个顺序内存副本、内核调用和剩余的 memCpy 计时)。我认为由于我没有使用任何同步结构,可能是我在计算实际完成之前打印了时间(我发现很难相信有 100% 的改进)。