问题标签 [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.
matrix - CUBLAS 或支持的库,重点是初学者阅读
我正在尝试利用 GPU (nVidia Quadro NVS140M) 的强大功能来加快我项目中的一些矩阵计算。我正在阅读一些文档(编程指南、最佳实践指南和参考手册),但不确定我应该关注哪些部分。如果我能在这方面得到一些建议,那就太好了。
另外,我想知道是否有第三方维护的 SDK,例如 CuBLAS.net,可以在我坚持使用 cublas 提供的功能帮助我实现项目目标之前简化 cublas 开发过程。再次,提前感谢您的评论。
c++ - CUBLAS 内存分配错误
我尝试按如下方式分配 17338896 个浮点数元素(大约 70 mb):
但是,我收到CUBLAS_STATUS_ALLOC_FAILED
变量状态的错误消息。这是否与机器上可用的视频卡内存量(我的 128 mb)有关,或者这是否是我可以使用 cublasAlloc() 函数分配的内存量的限制(即与数量无关机器上的可用内存)?我尝试使用 cudaMalloc() 函数,但遇到了同样的问题。提前感谢您对此进行调查。
--------------添加错误再现-------------------------------- -----
memory - CUDA 与 CuBlas 内存管理
我注意到我可以将内存块用于使用 cudamalloc() 或 cublasalloc() 函数分配的矩阵来调用 cublas 函数。使用 cudamalloc() 而不是 cublasalloc() 分配的数组的矩阵传输速率和计算速度较慢,尽管使用使用 cudamalloc() 的数组还有其他优点。为什么会这样?很高兴听到一些评论。
boost - BLAS 和 CUBLAS
我想知道 NVIDIA 的 cuBLAS 库。有没有人有这方面的经验?例如,如果我使用 BLAS 编写 C 程序,我是否能够用对 cuBLAS 的调用替换对 BLAS 的调用?或者更好地实现一种让用户在运行时选择的机制?
如果我将 Boost 提供的 BLAS 库与 C++ 一起使用会怎样?
c++ - 视觉工作室中的cublas链接
我正在尝试在视觉工作室中使用 cublas.h。该程序无法编译,因为它找不到某些外部链接。有人可以告诉我如何链接 .dll 文件,我相信它位于 ../C/common/bin 中。
matrix - CUDA - 简单的矩阵加法/求和运算
这应该很简单,但我找不到详尽的答案:
我需要用矩阵执行 A+B = C,其中 A 和 B 是两个未知大小的矩阵(它们可以是 2x2 或 20.000x20.000 作为最大值)
我应该使用带有 Sgemm 函数的 CUBLAS 来计算吗?
我需要可达到的最大速度,所以我想到了应该优化的 CUBLAS 库
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。
请问有什么办法解决吗?
matrix - CUBLAS - 矩阵元素求幂可能吗?
我正在使用 CUBLAS(Cuda Blas 库)进行矩阵运算。
是否可以使用 CUBLAS 来实现矩阵项的求幂/均方根?
我的意思是,有 2x2 矩阵
我想要的是一个提升到给定值的函数,例如 2
并计算均方根,例如
CUBLAS 可以做到这一点吗?我找不到适合这个目标的函数,但我会先在这里请求开始编写我自己的内核。
cuda - CUBLAS 矩阵乘法
在使用 CUDA 实现矩阵乘法之后。我试图用 CUBLAS 来实现它(感谢论坛中一些人的建议)。
我可以将方阵相乘,但是(再次是的......)我在使用非方阵时遇到了困难。唯一有效的非方阵乘法是当您改变矩阵 A 的宽度(A*B=C)时。
我没有收到任何错误,但结果矩阵返回错误值。这是我的代码(它基本上是对 simpleCUBLAS SDK 示例的改编):
有什么想法吗?另外,有没有人在 CUBLAS 中有一个矩阵乘法实现正在工作,所以我可以比较一下吗?提前致谢。
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 的矩阵顺序分析我的程序时,我得到以下信息:
当我为上述循环计时时,我得到的时间为 0.000284 秒,而不使用流的版本为 1.703289 秒(在该版本中,我也对两个顺序内存副本、内核调用和剩余的 memCpy 计时)。我认为由于我没有使用任何同步结构,可能是我在计算实际完成之前打印了时间(我发现很难相信有 100% 的改进)。