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

cuda - 涉及去除向量元素的推力向量变换

我有一个推力 device_vector 分成 100 个块(但在 GPU 内存上完全连续),我想删除每个块的最后 5 个元素,而不必重新分配一个新的 device_vector 来将其复制到。

我怎样才能正确地实现这一点?最好我想避免在 GPU 内存中分配一个新向量来保存转换。我知道有处理这些类型的操作的推力模板函数,但我很难将它们串在一起。Thrust 提供的东西可以做到这一点吗?

0 投票
2 回答
853 浏览

matrix - 使用 cuBLAS 访问子矩阵

我已阅读以下帖子

使用 LAPACK 访问子矩阵

我想做一些类似的从 Fortran 调用 cuBLAS 例程。

基本上,我有一个大矩阵被分割成3 x 3块,在循环的每一步中,分割都会发生变化。目前,我为每个单独的子块分配/释放指针,并在每一步将矩阵的相关部分复制到设备和从设备复制。这会产生很多我希望消除的开销。这可行吗?

0 投票
1 回答
281 浏览

cuda - 我可以同时为“cublas”导入第 4 版,同时为“cudart”库导入第 5 版吗?

听起来可能很奇怪,但情况是,在将 CUDA4 升级到 CUDA5 后,我发现自己的内核运行得更快,但 cublas 函数(例如 cublasDgemm)变得更慢。此外,cublasDgemm 似乎在版本 5 中调用了一些岩浆材料。

所以,我想知道我是否可以为“cublas”导入版本 4,而为“cudart”库导入版本 5。作为一个简单的试验,我有一个代码(mycode.cc):

并尝试:

我的系统有一个“模块”设置,我尝试了“模块加载 cuda4”和“模块加载 cuda5”。有趣的是,它在“module load cuda4”时编译,然后它报告:

这不是我想要的cudart。此外,当我“模块加载 cuda5”时,它仍然编译,但运行可执行文件失败:

感谢您的任何建议。

0 投票
2 回答
958 浏览

cuda - 调用 cublasSgemm/clAmdBlasSgemm 例程时如何在 GPU 上映射线程/块?

我有兴趣了解在计算矩阵乘法(C = A * B)时如何在 GPU 上映射cublasSgemm/例程。clAmdBlasSgemm

假设输入矩阵的维度 ::A_rows = 6144; A_cols = 12288; B_rows = 12288; B_cols = 15360;

和结果矩阵的维度 :: C_rows = 6144; C_cols = 15360;

假设我已经在主机上初始化了输入矩阵,并且我将矩阵数据复制到了设备内存中。之后,我调用以下程序cuBlasclAmdBlas例程在 GPU 上进行矩阵乘法。

其中 m = A_rows;和 n = B_cols;

所以我的疑问是:
1.)这些例程是如何在 GPU 上实现的?
2.) m 和 n 值是否映射在一个计算单元 (SM) 上?如果否,那么 m 和 n 的最大值是多少?
3.) 我们是否可以控制线程/块?

0 投票
2 回答
643 浏览

performance - 在 CUDA 上测量有效带宽

所以我想知道如何计算总内存有效带宽:

该功能低于cublas_v2.h

该函数在 0.46 毫秒内运行,向量是10000 * sizeof(float)

我有((10000 * 4) / 10^9 )/0.00046 = 0.086 GB/s吗?

我想知道它是因为我不知道 cublasSdot 函数内部是什么,也不知道它是否有必要。

0 投票
1 回答
1417 浏览

c++ - 在 cuda 内核中使用 cuDoubleComplex 进行操作

我对 cuda 内核的实现有疑问。

我生成了一个 cude 内核,我想在其中添加 cuDoubleComplex 变量的元素。后来我也想对元素做一些乘法。

我尝试了几种方法,但找不到解决方案。

我的功能是:

我尝试做类似的事情

其中 newValue 也是一个 cuDoubleComplex。我尝试使用 cublasZaxpy 函数,但我被告知不允许从全局函数调用主机函数

我可以用 cuDoubleComplex 变量在内核中做一个简单的加法吗?

0 投票
1 回答
1363 浏览

cuda - CUBLAS 库:查找实际值的最大值而不是绝对值

NVIDIA CUDA 的 CUBLAS 库允许找到具有最大绝对值(cublasIsamax) 的元素/索引。是否可以使用 CUBLAS 缩减函数以某种方式找到具有最大实际值的元素/索引?

[我使用的是 CUBLAS 3.2 版。]

编辑
约束:我无法以任何方式更改生产服务器的状态。这意味着我不能使用推力/cudpp,并且我坚持使用旧版本的 CUBLAS。

0 投票
1 回答
2735 浏览

cuda - CUDA 5.0:CUBIN 和 CUBLAS_device,计算能力 3.5

我正在尝试编译一个使用动态并行性将 CUBLAS 运行到 cu​​bin 文件的内核。当我尝试使用命令编译代码时

我明白了ptxas fatal : Unresolved extern function 'cublasCreate_v2

如果我添加-rdc=true编译选项,它编译得很好,但是当我尝试使用 cuModuleLoad 加载模块时,我得到错误 500:CUDA_ERROR_NOT_FOUND。来自 cuda.h:

内核代码:

注意: 的范围A是本地的,因此给定的指针处的数据cublasIdamax_v2是未定义的,因此jp在此代码中最终会成为或多或少的随机值。正确的方法是A在全局内存中。

主机代码:

主机代码使用nvcc -lcuda test.cpp. 如果我用一个简单的内核(如下)替换内核并在没有的情况下编译它-rdc=true,它工作正常。

简单的工作内核

提前致谢

  • 索伦
0 投票
2 回答
11696 浏览

cuda - 如何使用 cublas 库

我是cuda的新手。我想在 cuda 程序中使用 cublas 功能,并想知道如何使用它的过程。当我尝试在 GPU 上运行它时,我的程序给出了错误,即 *"cublas_v2.h 文件不存在"*。

0 投票
3 回答
7479 浏览

cuda - 在 CUDA 中转置矩阵的最有效方法是什么?

我有一个M*N主机内存矩阵,在复制到设备内存后,我需要将其转置为N*M矩阵。是否有任何 cuda (cuBLAS ...) API 这样做?我正在使用 CUDA 4。谢谢!