问题标签 [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.
cuda - CUDA 立方体gbmv理解
我最近想使用一个简单的 CUDA 矩阵向量乘法。我在 cublas 库中找到了一个合适的函数:cublas<<>>gbmv。这里是官方文档
但它实际上很差,所以我没能理解kl
和ku
参数的含义。此外,我不知道是什么stride
(也必须提供)。这些参数有一个简短的解释(第 37 页),但看起来我需要了解其他内容。
在互联网上搜索并没有提供关于这个问题的大量有用信息,主要是对不同版本的文档的引用。
所以我对 GPU/CUDA/cublas 大师有几个问题:
- 如何找到有关使用 cublas 的更易于理解的文档或指南?
- 如果你知道如何使用这个功能,你能不能解释一下我如何使用它?
- 也许 cublas 库有点特别,每个人都使用更流行、文档更好的东西等等?
非常感谢。
c - cublas 是否应该被 atlas 超越?
根据我对 cublas 和 atlas 的 dgemm 测量结果,atlas 在速度方面远远超过 cublas。这对于配备 Intel i7 950 和 Nvidia GTX470 的系统是否可以预期?
我以 50 为增量测试了大小为 10x10 到 6000x6000 的矩阵。Atlas 总是获胜。我测量了整个应用程序执行和乘法步骤。
其他人有这方面的经验吗?这是预期的结果吗?
提前致谢。
编辑:(相同的代码,在 Xeon X5670 和 Nvidia Tesla C2050 上的结果相同)
编辑 2:如果归因于 cublas 库的初始化,它似乎很慢。我继续努力。当我了解更多信息时,我会在这里更新。
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 轮换,什么是更好的选择?
在此先感谢,克里斯
cuda - 调用 cublas 函数时访问冲突
我对以下代码有疑问,在执行对 cublasSrotg 的调用时,它会引发异常:“访问冲突写入位置 0x05200600”,这是“dA”指针的地址。运行调试器时,它似乎跳过了对 cudaMalloc 的调用,但我不知道我做错了什么。
java - cublasSgemmBatched 与 jcuda 的使用
我一直在尝试在jcuda中使用 cublasSgemmBatched() 函数进行矩阵乘法,但我不确定如何正确处理指针传递和批处理矩阵的向量。如果有人知道如何修改我的代码以正确处理此问题,我将非常感激。在此示例中,C 数组在 cublasGetVector 之后保持不变。
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,因此,这种大小的内存分配根本不切实际,那么有没有办法在没有分析阶段 ?
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")
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
cuda - 使用 CUBLAS 例程在 GPGPU 上保留点积
我正在编写代码来使用点积的 CUBLAS 例程计算两个向量的点积,但它返回主机内存中的值。我只想使用点积在 GPGPU 上进行进一步计算。如何使值仅驻留在 GPGPU 上并将其用于进一步计算,而无需从 CPU 到 GPGPU 的显式复制?
c++ - 使用 cublas saxpy 时出错
我正在尝试使用cublasSaxpy
cublas 的功能。
看代码:
所以,我正在使用来自 CUDA 5.0 RC1 的 eclipse nsight。我没有构建项目,因为我没有完成它,但是 IDE 在 saxpy 操作中给了我一个读取下划线: