问题标签 [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.
c - 如何在 CUDA/cublas 中转置矩阵?
A*B
假设我在 GPU 上有一个维度为的矩阵,其中B
(列数)是假设 C 样式的前导维度。CUDA(或 cublas)中是否有任何方法可以将此矩阵转置为 FORTRAN 样式,其中A
(行数)成为前导维度?
如果可以在传输过程中进行转置,host->device
同时保持原始数据不变,那就更好了。
c - cuBlas,cuda 功能不工作,不产生错误
这是一个说明问题的最小程序。我正在使用具有 128 个 CUDA 内核的 GTS 250,在 Windows 7 上使用 CUDA 5.0。
这是输出,表明当数据被加载到 GPU 内存中时,实际上没有发生任何操作:
R值:0.123020、0.367809、0.834681、0.035096、0.517014、0.662984、0.426221、0.104678、
CUBLAS 初始化成功。
设备内存分配成功。
cublasSasum 没有产生错误。dR 总和:0
cublasSaxpy 没有产生错误。
cublasSaxpy 之后的 R 值:0.123020、0.367809、0.834681、0.035096、0.517014、0.662984、0.426221、0.104678、
在 R 上使用 cudaMemset 清零没有产生错误。
使用 cudaMemset 归零后的 R 值:0.123020、0.367809、0.834681、0.035096、0.517014、0.662984、0.426221、0.104678、
这是怎么回事?(和节日快乐。:))
c - 在 BLAS (cuBLAS/CUDA) 中将标量添加到向量
我不知道我是否只是忽略了一些明显的东西,但是尽管在谷歌上搜索了一下,但我看不到使用 BLAS 操作简单地将标量添加到向量(或矩阵)的方法。我正在尝试在 cuBLAS/CUDA 中执行此操作,因此我将采取任何方式在该框架内完成此操作。BLAS 具有<t>scal
标量乘法 ( cublas<t>scal
) 但加法的模拟量在哪里?!即类似于 GSL的东西gsl_vector_add_constant
。我错过了什么?
cuda - 将矩阵乘以标量
我是 cuda 和 cublas 的新手。
我想将矩阵中的每个元素(我使用 cublasSetMatrix)与一个标量值相乘。
我可以为此使用 cublasscal() 吗?文档说它是用于向量的。
谢谢。
cuda - cublasDgemm 返回 CUBLAS_STATUS_EXECUTION_FAILED
我正在使用 cublasDgemm 将两个矩阵相乘。
我编写了一个使用 cublasDgemm 并返回指向输出的指针的方法。
它似乎在我的单元测试中运行良好,但在我的应用程序代码中失败(返回代码 CUBLAS_STATUS_EXECUTION_FAILED)。
我现在检查了很多次代码,一切似乎都很好..有没有更好的错误解释?
更新:似乎每个第二个 cublasDgemm 调用都有效。第一个我得到这个错误,第二个我成功了..有什么想法吗?
更新2:这是我的电话
谢谢。
performance - 如何以最大性能标准化 CUDA 中的矩阵列?
如何有效地标准化 CUDA 中的矩阵列?
我的矩阵以列为主,典型大小为 2000x200。
该操作可以用以下matlab代码表示。
这可以通过 Thrust、cuBLAS 和/或 cuNPP 有效地完成吗?
包括 4 个内核的快速实现如下所示。
想知道这些是否可以在 1 或 2 个内核中完成以提高性能,尤其是对于 cublasDgemv() 实现的列求和步骤。
cuda - 异常(第一次机会)...内存中的 cudaError_enum
因此,在一些研究表明问题出在 cublas 库之后,我正在研究一个将我吐出错误的项目。
所以现在我有以下“最小”问题:
我从 NVIDIA CUDA SDK (4.2) 中打开了 simpleCUBLAS 示例,以测试是否可以重现该问题。
该程序本身可以工作,但 VS2010 给了我类似的输出:
Eine Ausnahme (erste Chance) bei 0x75e3c41f in simpleCUBLAS.exe: Microsoft C++-Ausnahme: cudaError_enum an Speicherposition 0x003bf704..
7次
所以我的规格:
我使用 GTX 460 进行计算,使用 sm_20 在 Windows 7 64 位上使用 VS2010 进行编译,并且 nvcc --version 给了我:
nvcc:NVIDIA (R) Cuda 编译器驱动程序 版权所有 (c) 2005-2011 NVIDIA Corporation 建立于 Fri_Jan_13_01:18:37_PST_2012 Cuda 编译工具,版本 4.1,V0.2.1221
这是我第一次在这里发帖,所以我为它发布的可怕格式道歉
cuda - 减少CUDA中的矩阵行或列
我正在使用 CUDAcuBLAS
来执行矩阵运算。
我需要对矩阵的行(或列)求和。目前我通过将矩阵与一个向量相乘来做到这一点,但这似乎并不那么有效。
有没有更好的办法?中找不到任何东西cuBLAS
。
cuda - 在 cuBLAS howto 中转置矩阵乘法
问题很简单:我有两个矩阵 A 和 B,它们是 M 乘 N,其中 M >> N。我想先对 A 进行转置,然后将其乘以 B (A^T * B) 到将其放入 C,即 N 乘 N。我已经为 A 和 B 设置了所有内容,但是如何正确调用 cublasSgemm 而不会返回错误的答案?
我知道 cuBlas 有一个 cublasOperation_t 枚举用于预先转置事物,但不知何故我并没有正确使用它。我的矩阵 A 和 B 以行优先顺序排列,即 [ row1 ][ row2 ][ row3 ]..... 在设备内存中。这意味着要将 A 解释为 A 转置,BLAS 需要知道我的 A 是按列优先顺序排列的。我当前的代码如下所示:
我的问题:
我是否正确设置了 m、k、n?
lda、ldb、ldc 呢?
谢谢!
cuda - 涉及相邻元素的推力矢量变换
我有一个向量,我想使用 CUDA 和推力转换执行以下操作:
我应该如何正确实现这一点?我可以做到的一种方法是使用向量 w,然后将推力::变换应用于 v 并将结果保存到 w。但是k提前是未知的,我不想创建w1,w2,...浪费大量的GPU内存空间。最好我想尽量减少数据复制的数量。但我不确定如何使用一个向量来实现这一点,而这些值不会相互影响。Thrust 提供的东西可以做到这一点吗?