问题标签 [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 - 理解 Cublas:向量加法(asum)
根据CUBLAS 参考,asum 函数(用于获取向量元素的总和)是:
您可以在参考链接中看到参数说明,大致我们有一个元素向量x
以及n
元素incx
之间的距离。
我的代码是(相当简化,但我也测试了这个,但仍然存在错误):
为了简化代码,我删除了错误检查(没有错误,CUBLAS 函数返回CUDA_STATUS_SUCCESS
)和free
and cudaFree
。
它编译,它运行,它不会抛出任何错误,但打印的结果是0
,并且,调试,它实际上是1.QNAN
。
我错过了什么?
cuda - 在 cuBLAS 中,如何从主机获取或设置矩阵元素?
嗨,我正在使用 cuBLAS 进行一些矩阵运算。
有时,我需要获取或设置单个矩阵元素。根据 cuBLAS 文档,矩阵分配如下:
现在,如果我只需要更改一个元素,我可以使用 cudaMemset 之类的东西吗?从主机代码执行此操作的正确方法是什么?每次只更改一个元素时,我都不想将整个数组从主机复制到设备。
eclipse - 如何在 Eclipse Nsight 中链接到 cublas 库?
我正在使用 Nvidia 的 simpleCUBLAS 示例代码。该示例带有一个 Makefile,或者我可以像这样编译它:
g++ -m32 -I/usr/local/cuda/include -I. -o simpleCUBLAS.o -c simpleCUBLAS.cc g++ -m32 -o simpleCUBLAS simpleCUBLAS.o -L/usr/local/cuda/lib -l cudart -l cublas
(“-I.”包含的文件是 cuda_runtime.h helper_cuda.h helper_string.h)
这编译并运行得很好。但是,我想使用 Eclipse 的 CUDA 的 Nsight 编辑器来实现这一点。
我的问题是:如何将这些选项添加到 Eclipse(-L/usr/local/cuda/lib -l cudart -l cublas 和 -I.)Nsight?
其他细节:我正在使用 Linux。我在其他地方看到了 Eclipse 和 c/c++ 项目的一些信息,但这里我使用的是 cuda c/c++ 项目。
谢谢。
cuda - cublas 无法同步停止事件?
我正在使用matrixMulCUBLAS示例代码,并尝试将默认矩阵大小更改为更有趣的行=5k x cols=2.5k,然后Failed to synchronize on the stop event (error code unknown error)!
当所有计算完成时,示例失败并出现第 377 行的错误,它是显然清理cublas。这是什么意思?以及如何解决?
我已经安装了EVGA FTW nVidia GeForce GTX 670
带有 2GB 内存的 cuda 5.0。驱动程序版本是今天最新的 314.22。
c - 输入矩阵也可以用于存储输出矩阵与 CUBLAS 吗?
例如,cublas<t>geam()
将做:
但是如果我想存储结果A
呢?我可以用指针调用它,*C = *A
以便:
不用担心我可能会将输出写入仍然作为输入读取的矩阵?
如果是这样,是否保证我们可以安全地使用所有其他 CUBLAS 矩阵运算?
cuda - 如何在 CUDA 中将矩阵复制到更大的矩阵中
我想在我的 GPU 上设置一个大矩阵来用 CULA 求解相应的方程组。
给你一些数字,以了解问题:
现在我想将(100x100)
小矩阵的每个四分之一复制到第二个矩阵的特定部分。
我发现了两个可能但显然很慢的例子:cublasSetMatrix
并cublasGetMatrix
支持前导维度的规范,因此我可以将零件放在我想要的位置,但必须将矩阵复制回主机。另一个示例是cudaMemcpy
,它不支持前导维度。在这里,我可以手动复制每一行/列(目前我不确定这个例程使用什么,数据来自 Fortran)。但这样一来,我应该得到很大的开销......
有没有比编写自己的内核更好的方法来复制矩阵?
pointers - 为什么 CUBLAS 使用 const 指针作为参数?
例如,
这涉及到一些混淆点:
- 达到什么
const
目的? - 为什么我们必须为标量参数提供指针?
- 这有什么关系
CUBLAS_POINTER_MODE_HOST
? - 我们是否需要显式创建临时
const
变量来传递它们,或者普通指针会这样做吗?
c - Clarification of the leading dimension in CUBLAS when transposing
For a matrix A
, the documentation only states that the corresponding leading dimension parameter lda
refers to the:
leading dimension of two-dimensional array used to store the matrix A
Thus I presume this is just the number of rows of A
given CUBLAS' column major storage format. However, when we consider Op(A)
, what does the leading dimension refer to now?
c++ - 如何在模板函数中使用 CUBLAS 库?
CUBLAS 对每种类型的数据都有一个单独的函数,但我想从模板中调用 CUBLAS,例如:
如何触发正确的函数调用?
c++ - c++ 和 cublas 代码的混合没有编译
所以我有这段代码,它假设以不同的方式计算矩阵的点积(其中一种是在 c++ 中使用 blas),但是当我尝试使用 nvcc 编译代码时,它不起作用并且它说我对 ddot 有未定义的引用。这很奇怪,因为我很确定我正在使用此处为 cublas 引用的调用符号:http ://www.sdsc.edu/us/training/assets/docs/NVIDIA-03-Toolkit.pdf
谁能帮我?这是我遇到问题的代码片段:
这对我来说很奇怪。我也试过删除“_”但没有运气。
这是我使用的编译命令:nvcc program
我是否需要在编译过程中以某种方式提及 cublas 库?我安装了 cuda 工具包,但我不知道如何引用库,除了
#include <cublas.h>
新更新
事实证明,无论我是否包含 cublas.h 标头,我都会得到相同的输出
无论我是否输入 -lcublas,我都会得到相同的输出
这是输出,对于所有编译都是垃圾(带/不带 cublas.h 和带/不带 -lcublas)