问题标签 [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 回答
951 浏览

cuda - CUDA 立方体gbmv理解

我最近想使用一个简单的 CUDA 矩阵向量乘法。我在 cublas 库中找到了一个合适的函数:cublas<<>>gbmv。这里是官方文档

但它实际上很差,所以我没能理解klku参数的含义。此外,我不知道是什么stride(也必须提供)。这些参数有一个简短的解释(第 37 页),但看起来我需要了解其他内容。

在互联网上搜索并没有提供关于这个问题的大量有用信息,主要是对不同版本的文档的引用。

所以我对 GPU/CUDA/cublas 大师有几个问题:

  1. 如何找到有关使用 cublas 的更易于理解的文档或指南?
  2. 如果你知道如何使用这个功能,你能不能解释一下我如何使用它?
  3. 也许 cublas 库有点特别,每个人都使用更流行、文档更好的东西等等?

非常感谢。

0 投票
1 回答
605 浏览

c - cublas 是否应该被 atlas 超越?

根据我对 cublas 和 atlas 的 dgemm 测量结果,atlas 在速度方面远远超过 cublas。这对于配备 Intel i7 950 和 Nvidia GTX470 的系统是否可以预期?

我以 50 为增量测试了大小为 10x10 到 6000x6000 的矩阵。Atlas 总是获胜。我测量了整个应用程序执行和乘法步骤。

其他人有这方面的经验吗?这是预期的结果吗?

提前致谢。

编辑:(相同的代码,在 Xeon X5670 和 Nvidia Tesla C2050 上的结果相同)

编辑 2:如果归因于 cublas 库的初始化,它似乎很慢。我继续努力。当我了解更多信息时,我会在这里更新。

0 投票
1 回答
630 浏览

cuda - 使用 cuBlas 函数 cublasSrotg 和 cublasSrot 进行 QR 分解的 Givens 旋转

我是 CUDA 的新手,我尝试使用 cuBlas 库为 QR 分解实现 Givens 旋转。

我用了

cublasStatus_t cublasSrotg(cublasHandle_t handle, float *a, float *b, float *c, float *s)

用于计算 c 和 s 和

cublasStatus_t cublasSrot (cublasHandle_t handle, int n, float *x, int incx, float *y, int incy, const float *c, const float *s)

用于旋转 1000 x 1000 矩阵。由于 cublaSrotg() 用 r 和 z 覆盖参数 a 和 b,我无法在设备内存中使用矩阵。但是将矩阵的元素复制到主机大约需要循环任何循环的 90%。C 语言的实现速度快三倍。

我用错了吗?对于 CUDA 设备上的 Givens 轮换,什么是更好的选择?

在此先感谢,克里斯

0 投票
1 回答
796 浏览

cuda - 调用 cublas 函数时访问冲突

我对以下代码有疑问,在执行对 cublasSrotg 的调用时,它会引发异常:“访问冲突写入位置 0x05200600”,这是“dA”指针的地址。运行调试器时,它似乎跳过了对 cudaMalloc 的调用,但我不知道我做错了什么。

0 投票
1 回答
294 浏览

java - cublasSgemmBatched 与 jcuda 的使用

我一直在尝试在jcuda中使用 cublasSgemmBatched() 函数进行矩阵乘法,但我不确定如何正确处理指针传递和批处理矩阵的向量。如果有人知道如何修改我的代码以正确处理此问题,我将非常感激。在此示例中,C 数组在 cublasGetVector 之后保持不变。

0 投票
0 回答
1244 浏览

cuda - cuSparse 与 cuBlas 三角求解器

实际上我几天前发布了一个相关问题,但是我得到了零答案,但是,我昨天发现了一个非常奇怪的发现,正如我之前的问题中提到的那样:cusparse csrsv_analysis 的性能非常慢, cusparse 的稀疏三角求解器的分析阶段非常慢,更不用说当系数矩阵稀疏模式不允许并行化时有时是不必要的,所以我想看看 cublas 密集三角求解器如何处理这个问题,所以我替换了在将我的系数矩阵转换为密集格式后,带有 cublas 求解器的 cusparse 求解器,并且 cublas 版本比给定相同矩阵的 cusparse 版本快约 7 倍,甚至在 CuBlas 求解器中包含矩阵格式转换时间之后!我修改了解决方案,所以在这两种情况下都是正确的!

Cu稀疏版

CuBlas 版本

测试用例:

  • 尺寸 (N) = 5000 * 5000
  • 非零数 (NZ) = 35,000
  • 迭代次数:3
  • CuSparse 求解时间,分析阶段执行一次:180 ms
  • CuBlas 求解时间:30 ms
  • 显卡:GeForce GTX 550 Ti
  • 操作系统:Windows 7 终极版,64 位

当然,使用 CuBlas 对我来说是不切实际的,因为我的工作涉及到大维度矩阵,从 100,000 开始甚至达到 1,000,000,因此,这种大小的内存分配根本不切实际,那么有没有办法在没有分析阶段 ?

0 投票
1 回答
1682 浏览

cuda - 是否可以从全局或设备函数调用 CUDA CUBLAS 函数

我正在尝试并行化现有应用程序,我将大部分应用程序并行化并在 GPU 上运行,我在将一个功能迁移到 GPU 时遇到问题

该函数使用了一个函数 dtrsv,它是 blas 库的一部分,见下文。

我已经能够按照下面调用等效的 cuda/cublas 函数,并且产生的结果等效于 fortran dtrsv 子例程。

我的问题是我需要能够从设备或全局函数调用 cublasDtrsv,如下所示,

在 cuda 4.0 中,如果我尝试编译以下内容,则会出现以下错误,有谁知道是否有一种方法可以从 a __device__or函数调用 cublas__global__函数?

错误:不允许function("cublasDtrsv_v2")__device__/调用主机__global__ function("Dtrsv__dev")

0 投票
1 回答
932 浏览

cuda - CUBLAS 库没有给出正确的结果

我正在尝试探索 CUBLAS 库,因此使用其 API 编写了矩阵乘法代码。但我得到了奇怪的输出。我在下面粘贴代码和输出。请帮我。

- - - - -输出 - - - - - - -

矩阵 A

0.000000 1.000000 2.000000

3.000000 4.000000 5.000000

6.000000 7.000000 8.000000

矩阵 B

0.000000 1.000000 2.000000

3.000000 4.000000 5.000000

6.000000 7.000000 8.000000

矩阵 C(结果)

-1998397155538108416.000000 -1998397155538108416.000000 -1998397155538108416.000000

-1998397155538108416.000000 -1998397155538108416.000000 -1998397155538108416.000000

-1998397155538108416.000000 -1998397155538108416.000000 -1998397155538108416.000000

0 投票
2 回答
3929 浏览

cuda - 使用 CUBLAS 例程在 GPGPU 上保留点积

我正在编写代码来使用点积的 CUBLAS 例程计算两个向量的点积,但它返回主机内存中的值。我只想使用点积在 GPGPU 上进行进一步计算。如何使值仅驻留在 GPGPU 上并将其用于进一步计算,而无需从 CPU 到 GPGPU 的显式复制?

0 投票
1 回答
979 浏览

c++ - 使用 cublas saxpy 时出错

我正在尝试使用cublasSaxpycublas 的功能。

看代码:

所以,我正在使用来自 CUDA 5.0 RC1 的 eclipse nsight。我没有构建项目,因为我没有完成它,但是 IDE 在 saxpy 操作中给了我一个读取下划线: