cublas相关内容

将指针数组复制到设备内存并返回(CUDA)

我正在尝试在我的玩具示例中使用 cublas 函数 cublasSgemmBatched.在本例中,我首先分配二维数组:h_AA, h_BB 大小为 [6][5] 和 h_CC 的大小为 [6][1].之后我将它复制到设备,执行 cublasSgemmBatched 并尝试将数组 d_CC 复制回主机数组 h_CC.但是,我在设备到主机复制时遇到错误 (cudaErrorLaunchFailure ..
发布时间:2022-01-10 15:55:34 其他开发

CUDA 中的矩阵向​​量乘法:基准测试和表现

我正在用一些新的基准测试结果更新我的问题(我还重新表述了问题以更具体并更新了代码)... 我按照 CUDA C 编程指南 使用共享内存.先介绍一下我在 Jetson TK1(GPU:Tegra K1,计算能力 3.2)上所做的一些基准测试结果,并与 cuBLAS 进行比较: 在这里,我猜 cuBLAS 有一些魔力,因为它的执行似乎不受 A 的列数的影响,这反过来意味着沿着列存在某种并行 ..
发布时间:2022-01-10 15:49:42 其他开发

如何使用 CUBLAS 对复数执行 Hadamard 乘积?

我需要使用 NVidia CUBLAS 计算复数的两个向量(Hadamard 乘积)的元素乘法.不幸的是,CUBLAS 中没有 HAD 操作.显然,您可以使用 SBMV 操作来做到这一点,但在 CUBLAS 中它没有实现复数.我不敢相信 CUBLAS 无法实现这一目标.对于复数,还有其他方法可以使用 CUBLAS 实现吗? 我无法编写自己的内核,我必须使用 CUBLAS(或其他标准 NVID ..
发布时间:2022-01-10 15:44:25 其他开发

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

我正在编写代码来使用点积的 CUBLAS 例程计算两个向量的点积,但它返回主机内存中的值.我只想使用点积在 GPGPU 上进行进一步计算.如何使值仅驻留在 GPGPU 上并将其用于进一步计算,而无需从 CPU 到 GPGPU 进行显式复制? 解决方案 你不能完全使用 CUBLAS. 根据 talonmies 的回答,从 CUBLAS V2 api (CUDA 4.0) 开始返回值可以是设备 ..
发布时间:2022-01-10 15:44:03 其他开发

在 cuBLAS howto 中转置矩阵乘法

问题很简单:我有两个矩阵 A 和 B,它们是 M 乘 N,其中 M >> N.我想先对 A 进行转置,然后将其乘以 B (A^T *B)将其放入C中,即N乘N.我为A和B设置了所有内容,但是如何正确调用cublasSgemm而不返回错误的答案? 我知道 cuBlas 有一个 cublasOperation_t 枚举用于预先转换内容,但不知何故我并没有正确使用它.我的矩阵 A 和 B 以行优先 ..
发布时间:2022-01-10 15:40:26 其他开发

与 cublasIsamax 相比,thrust::max_element 慢 - 更有效的实现?

我需要一个快速有效的实现来查找 CUDA 中数组中最大值的索引.此操作需要执行多次.我最初为此使用了 cublasIsamax,但是,遗憾的是,它返回了最大绝对值的索引,这不是我想要的.相反,我使用的是thrust::max_element,但是与cublasIsamax 相比速度相当慢.我以以下方式使用它: //d_vector 是设备上指向向量开头的指针,包含nrElements 浮点数.推 ..
发布时间:2022-01-10 15:33:06 C/C++开发

CUDA 内核可以调用 cublas 函数吗?

我知道这听起来很奇怪,但这是我的场景: 我需要进行矩阵-矩阵乘法 (A(n*k)*B(k*n)),但我只需要计算输出矩阵的对角元素.我搜索了 cublas 库,但没有找到任何可以做到这一点的 2 级或 3 级函数.因此,我决定将 A 的每一行和 B 的每一列分配到 CUDA 线程中.对于每个线程(idx),我需要计算点积“A[idx,:]*B[:,idx]"并将其保存为对应的对角线输出.现在 ..
发布时间:2021-12-30 21:30:17 其他开发

如何在 CUDA/cublas 中转置矩阵?

假设我在 GPU 上有一个维度为 A*B 的矩阵,其中 B(列数)是假设 C 风格的主要维度.CUDA(或cublas)中是否有任何方法可以将此矩阵转置为FORTRAN样式,其中A(行数)成为主要维度? 如果能在host->device传输过程中进行转置就更好了,同时保持原始数据不变. 解决方案 CUDA SDK 包括一个 矩阵转置,你可以看到这里的例子关于如何实现的代码,从简单的实 ..
发布时间:2021-12-30 21:21:38 其他开发

cublas 的 tensorflow 运行错误

当我在集群上成功安装 tensorflow 后,我立即运行 mnist demo 来检查它是否运行良好,但在这里我想到了一个问题.我不知道这是怎么回事,但看起来错误来自 CUDA python3 -m tensorflow.models.image.mnist.convolutional我 tensorflow/stream_executor/dso_loader.cc:108] 在本地成功打开 ..
发布时间:2021-12-27 17:02:01 其他开发

CUDA-CUBLAS:解决许多(3x3)密集线性系统的问题

我正在尝试使用CUDA 10.1解决大约1200000线性系统(3x3,Ax = B),尤其是使用CUBLAS库.我从此帖子[有用!]/a>,然后在统一内存版本中重新编写建议的代码.该算法首先使用cublasgetrfBatched()执行LU分解,然后连续两次调用cublastrsm()来求解上三角三角形系统或下三角三角形系统.该代码附在下面.它最多可以正确处理大约10000个矩阵,在这种情况下 ..
发布时间:2021-04-27 20:11:38 C/C++开发

是否可以从CUDA 10.1内核中调用cuBLAS或cuBLASLt函数?

关于CUDA 10.1 我正在对几何网格进行一些计算,每个网格的每个面都进行了大量的独立计算.我运行一个CUDA内核,该内核会为每张面孔进行计算. 计算涉及一些矩阵乘法,因此我想使用cuBLAS或cuBLASLt加快速度.由于我需要进行许多矩阵乘法(每张脸至少要进行两次),所以我想直接在内核中进行.这可能吗? 看起来cuBLAS或cuBLASLt似乎不允许您从内核(__globa ..
发布时间:2021-04-27 20:09:22 C/C++开发

CMake 3.11链接CUBLAS

我如何正确链接到 CMake 3.11 中的 CUBLAS ? 尤其是,我正在尝试为 解决方案 找到了将以下行添加到 CMakeLists 文件末尾的解决方案: target_link_libraries(mmul_2 -lcublas -lcurand) ..
发布时间:2021-04-22 19:53:50 其他开发

cublasXt矩阵乘法在C ++中成功,在Python中失败

我正在尝试在Ubuntu Linux 16.04上的python 2.7.14中使用ctypess将CUDA 9.0中的 cublasXt * gemm 函数包装起来。这些函数接受主机内存中的数组作为它们的某些参数。我已经能够在C ++中成功使用它们,如下所示: #include #include #include“ cublasXt.h” ..
发布时间:2020-06-08 18:58:40 Python

cuBLAS cublasSgemv“分段错误”

运行cublasSegmv时出现分段错误,我的GPU是K20Xm,这是我的代码。 float * a ,* x,* y; int NUM_VEC = 8; y =(float *)malloc(sizeof(float)*行* NUM_VEC); a =(float *)malloc(sizeof(float)*行* cols); x =(float *)malloc(si ..
发布时间:2020-06-08 18:58:37 C/C++开发