问题标签 [cula]

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 投票
2 回答
1324 浏览

r - gputools:安装错误

我正在使用 NVidia Tesla 2050 GPU 卡设置新的 Dell Precision 工作站。我想安装 R 的包 gputools。我的操作系统是带有 KDE 4.4 的 openSuse 11.3。

我下载了 NVidia 的 CUDA Toolkit 3.2 并将其安装在 /usr/local/cuda 中,我还下载了最新版本的 CULA 工具集(版本 R10)并将其安装在 /usr/local/cula 中。

尝试从 R 中安装 gputools 时使用: install.packages("gputools") 我收到以下错误消息:

使用旧版本的 CULA 和 CUDA 工具集也无济于事。

0 投票
1 回答
1463 浏览

cuda - 对于小型数据集,为什么使用 cula(dgesv) 求解线性方程组比 mkl (dgesv) 慢

我编写了一个 CUDA C 和 C 程序来求解矩阵方程 Ax=b 使用 CULA 例程 dgesv 和 MKL 例程 dgesv。似乎对于一个小数据集,CPU 程序比 GPU 程序快。但是随着数据集增加到超过 500,GPU 克服了 CPU。我正在使用我的戴尔笔记本电脑,它有 i3 CPU 和 Geforce 525M GPU。GPU最初性能缓慢的最佳解释是什么?

我写了另一个程序,它接受两个向量,将它们相乘并相加。这就像点积一样,只是结果是向量和而不是标量。在这个程序中,即使对于小数据集,GPU 也比 CPU 快。我正在使用同一个笔记本。为什么与上面解释的相比,即使对于小数据集,该程序中的 GPU 也更快?是不是因为求和涉及的计算量不多?

0 投票
1 回答
1653 浏览

matlab - 改进 CUDA GPU 上 A*x=B 的 Matlab + CUSP MEX 解决方案

Matlab 仍然无法在 CUDA GPU 上计算稀疏矩阵。也没有这样的工具箱(夹克已停产)。这就是为什么我使用通过 MEX 文件集成到 Matlab 的 CUSP。但是,我开发的工具有两个问题:

  • 对于大型方程系统(实际上仅从 100 个元素开始),它非常不稳定,
  • 它比 Matlab CPU 替代品慢几十或几百倍。

我正在求解 A*x=b,其中 A 是稀疏的对称矩阵,b 是向量。

硬件规格:英特尔 i7 3630QM、GT640M 2G、8 GB DDR3。软件:Windows 8 64 位、Matlab R2012b 64 位、CUDA 5.0 64 位、CUSP 0.3.1、Windows SDK v7.0、VS2010 编译器。

墨西哥代码:

使用以下命令在 Matlab 上的 MEX 文件(ex.cu)中编译此代码(如有必要,将第二个命令更改为 32 位):

样本矩阵、向量和编译的 64 位 MEX 函数: http: //www.failai.lt/3fqkhvoslxyt/sampleData.7z.htm

利用:

其中时间 - 单独的执行时间,最后一个元素 - 用于解决方案的迭代计数(bicgstab 监视器),结果 - K*x=F 的解决方案。

结果(http://www.failai.lt/rupaliln7kfb/results.7z.htm):

  • K_int_6,F_int_6 - 好的
  • K_11, F_11 - x(1) 错误,其他正常
  • K_100000, F_100000 - x(1) 错误,其他从一开始还可以,但后来与正确结果相比正在减少。
  • K_100000, F_100000 - 在 GPU (MEX) 上执行持续 0.6 秒,而在 CPU ( tic;xcpu=K\F;toc; ) 上持续 0.014 秒。

你能看看那个代码,也许试试 MEX 函数,报告你的结果,建议如何改进这个函数?也许您知道任何可以在 GPU 上进行稀疏计算的替代方案?我希望,在 Matlab 发布对 GPU 上稀疏矩阵的兼容性之前,它对每个人都有用 :)

0 投票
1 回答
377 浏览

cuda - 如何在 CUDA 中将矩阵复制到更大的矩阵中

我想在我的 GPU 上设置一个大矩阵来用 CULA 求解相应的方程组。

给你一些数字,以了解问题:

现在我想将(100x100)小矩阵的每个四分之一复制到第二个矩阵的特定部分。

我发现了两个可能但显然很慢的例子:cublasSetMatrixcublasGetMatrix支持前导维度的规范,因此我可以将零件放在我想要的位置,但必须将矩阵复制回主机。另一个示例是cudaMemcpy,它不支持前导维度。在这里,我可以手动复制每一行/列(目前我不确定这个例程使用什么,数据来自 Fortran)。但这样一来,我应该得到很大的开销......

有没有比编写自己的内核更好的方法来复制矩阵?

0 投票
1 回答
183 浏览

cuda - 如何在 GPU 上通过 CULA 使用 3D 矩阵?

在某些代码的 CPU 版本中,我有很多如下所示的内容:

A[i]一些大小的二维矩阵在哪里。

我希望能够在使用 CULA 的 GPU 上执行此操作(我不只是在做乘法,所以我需要 CULA 中的线性代数运算),例如:

但是,我想在程序开始时将我的 B 提前存储在 GPU 上,因为它们不会改变,但我不知道如何去做。或者我一般如何存储我的数组以便这是可能的。

我在网上看到了关于在 CUDA 中使用 3D 矩阵的各种内容,但它们似乎不太适用于随后能够对 CULA 函数进行函数调用。

从下面答案中的示例中,我有这个:

我已将 double **GlobalFVecs_d 声明为全局变量。但是当它上线时我得到一个段错误

然而,这似乎正是另一个例子中的内容?

我意识到它不一样,所以我现在有了可以编译的代码:

但是,如果我现在尝试通过以下方式访问它:

它在这里出现了错误,这不是如何获取数据吗?

0 投票
1 回答
98 浏览

c++ - 访问指向 GPU 上其他向量的指针向量

所以这是我提出的一个问题的后续,目前在一些代码的 CPU 版本中,我有很多看起来如下所示的东西:

其中 A[i] 将是某个大小的二维矩阵。

我希望能够在使用 CULA 的 GPU 上执行此操作(我不只是在做乘法,所以我需要 CULA 中的线性代数运算),例如:

但是我想在程序开始时将我的 B 提前存储在 GPU 上,因为它们不会改变,所以我需要一个向量,其中包含指向构成我的 B 的向量集的指针。

我目前有以下编译代码:

但如果我现在尝试通过以下方式访问它:

它在这里出现故障,这不是如何获取数据吗?

我正在调用的内核函数只是:

我做错了什么?最后请注意,我还想作为第一个示例,在每个 GlobalFVecs_d[i] 上调用 cula 函数,但现在甚至这都行不通。

你认为这是最好的方法吗?如果可以只传递 CULA 函数的一个大连续向量的切片,我可以这样做,但我不知道它是否支持。

干杯林德利

0 投票
1 回答
233 浏览

visual-c++ - GPUMLib unresolved externals at build time

I am trying to build GPUMLib, and I get the following errors

Any ideas what might be causing this ? Please note that this is the only part that is unsuccessfully built from the entire library

0 投票
2 回答
760 浏览

r - Rcpp 和 CULA:分段错误

我从gputools R 包中提取了相关位,通过动态加载链接到culatools的共享库,使用Rcpp在我的 GPU 上运行 QR 分解。一切都在我的 Mac 上的终端和R.app中顺利运行。结果与Rqr()函数一致,但问题是退出R.app时出现分段错误(使用终端时不会出现该错误):

我想我将问题缩小到链接到culatools的 .c 文件中的指针“a”和“tau” :

我在我的 Mac 上编译了 .c 文件,使用:

我写了一个 .cpp 文件,它使用Rcpp并动态加载共享库 gpuQR.so:

我使用以下方法在R中编译了 .cpp 文件:

并运行了一个例子:

有人知道如何解决分段错误吗?

0 投票
1 回答
494 浏览

c - CULA 中的 culagesvd()

我想使用该culadgesvd()函数来计算矩阵的 SVD。我不清楚如何使用文档中的信息在 C/C++ 中实际使用它。谁能给我一个完整的小 C 程序,一个模板,以显示该函数的基本使用方式?只需几行(使用 and 之类的东西culaInitialize()culaShutdown()就可以了,我只需要看看这个函数如何运行而不会出错。

0 投票
1 回答
1245 浏览

r - MAGMA 和 Rcpp 用于 R 中的线性代数

我想知道是否有人尝试使用RcppMAGMA通过使用 CPU 和 GPU来加速R中的线性代数运算?我上个月尝试了culatools,它与Rcpp (链接) 一起工作,但culatools是一种商业产品,需要花钱才能访问所有功能。