问题标签 [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.
c - 可以从设备内核调用 CULA 例程吗?
所以我想看看我是否可以通过使用 GPU 通过同时求解一堆来求解一个小的超定方程组来获得一些显着的加速。我当前的算法涉及使用 CULA Dense 库中的 LU 分解函数,该函数还必须在 GPU 和 CPU 之间来回切换以初始化和运行 CULA 函数。我希望能够从我的 CUDA 内核调用 CULA 函数,这样我就不必跳回 CPU 并将数据复制回来。这也将允许我创建处理不同数据集的多个线程,以同时解决多个系统。我的问题是我可以从设备函数中调用 CULA 函数吗?我知道 CUBLAS 和其他一些 CUDA 库可以做到这一点。
谢谢!
cuda - 用于计算 Kronecker 产品的 CUDA 库
我有一个应用程序,需要我计算二维矩阵的一些大型 Kronecker 积并将结果乘以大型二维矩阵。我想在 CUDA 的 GPU 上实现这一点,并且更愿意为此使用经过调整的库实现,而不是编写我自己的(当然不是最佳的)Kronecker 产品。我有 CUDA、BLAS、LAPACK 等方面的经验,但不幸的是,常见的 GPU 实现(岩浆、cuBLAS、cula 等)中没有 kron(A,B) 函数。
我已经搜索了一些解决方案,但找不到适合我需要的库。(关于 SO 最接近的问题是使用 CUDA 在 gpu 上并行 Kronecker 张量产品,但这看起来像是针对特殊情况的自定义解决方案,不适合我的需求。我正在寻找可以在最通用的情况下工作的 Kronecker 产品案子。)
我读过 BLAS 中的 DGEMM 可用于实现 Kronecker 产品。是否有使用 DGEMM(或其单一/复杂变体)实现 Kronecker 产品的标准算法?在我看来,唯一的方法是在循环中调用 DGEMM 并将结果平铺到更大的矩阵中,这似乎不是很有效。或者,有没有人知道另一个可能提供我正在寻找的实现或论文?
lapack - X 的 cula "culaSgesv" 答案在哪里?
我刚刚下载了 Cula,我想用它实现的函数来求解线性方程组X 并且由于 A 是单位对角矩阵,所以答案是“B”,并且在这行代码中没有任何反应
(将 X 更改为 B 没有帮助!)
你能告诉我发生了什么事吗?请告诉我如何从中得到答案“X”?
如果有人需要任何进一步的信息,请告诉我。
lapack - cula 使用 culaSgels - 错误的论点?
我正在尝试使用 culaSgels 函数来解决 Ax=B。
我修改了 cula 包的 systemSolve 示例。
我正在使用culaSgels('N',N,N, NRHS, A, N, A, N);
解决系统但是:
1)结果显示 X=0 的每个元素,但 B 是正确的。此外,它向我展示了
结果检查失败消息
2)研究参考手册,它说最后一个参数(AI有)之前的一个参数,应该是按列存储的矩阵B,但是如果我使用“B”而不是“A”作为参数,那么我没有得到正确的 B 矩阵。
cuda - 澄清一些关于 culasparse 的事情
检查 这个例子(最后是API例子),我想问几个问题。
1)在示例中,我们为矩阵 a 提供非零元素。但矩阵的实际大小是多少?这些是矩阵的元素还是包含非零元素的位置?
2)我可以在计算中使用(在像 culaSparseSetDcooData 这样的函数中使用)包含零和非零元素的矩阵 A 吗?如果我想创建一个示例矩阵只是为了测试,我是否应该创建一个零元素的矩阵,然后用一些元素填充它?
cuda - 如何使用 cula 设备
我对如何使用 cula 设备界面有点困惑。现在,我在 cpp 文件上使用 cula 接口,并从 cu 文件生成一些随机数。
.cu 文件:
cpp文件:
所以,我从 cu 文件分配主机内存并将其传递给 cpp 文件。
如果我想使用 cula 设备?
我不知道如何管理内存传输。
python - 使用 numpy 和 CULA 的不同 QR 分解结果
我以两种不同的方式执行 QR 分解:使用标准 numpy 方法和使用在 CULA 库中实现的 GEQRF LAPACK 函数。这是python中的简单示例(用于访问CULA的PyCULA):
它产生以下输出:
我的代码有什么问题?
multithreading - CULA multiGPU.c
我正在尝试运行 CULA 的多 GPU 示例,但出现以下错误。有人尝试过这个例子并设法让它工作吗?我有两个 GPU。
[xxxx@xxxxxxxxxx multiGPU]$ ./multiGPU 找到 2 个设备,将启动 2 个线程
线程 0 - 已启动 线程 0 - 绑定到设备 0 线程 1 - 已启动 线程 1 - 绑定到设备 1 线程 0 - CUDA 错误:独占线程设备已被不同的线程使用(参见程序员指南) 线程 1 - 分配矩阵 线程1 - 初始化 CULA 线程 1 - 调用 culaSgeqrf 线程 1 - 关闭 CULA
线程 0 - 失败
python - 在jetson tk1板上将CULA密集库加载到python中
从这个网站( http://www.culatools.com/downloads/dense/ )成功下载并安装了完整的CULA密集R18包到我的jetson TK1板上,我无法使用ctypes将库加载到python中. 我已更改 ./bashrc 中的 LD_LIBRARY_PATH 以包含包含 libcula_lapack.so 共享对象文件的目录:
但是当我运行以下代码时:
我收到此错误:
我尝试将完整目录作为参数等放入,并且我还尝试了 lib 目录和 lib64 目录中的每个 .so 文件,以防我有错误的文件。当我将文本文件放在同一目录(或任何目录)中并在 LoadLibrary 命令中调用它时,除非我打错字,否则上述错误代码不会触发(尽管如预期的那样,当然会触发另一条错误消息) .
相比之下,我已经应用完全相同的方法(据我所知)将 cudart 和 npp 库导入 python 并取得了巨大成功。任何帮助将不胜感激,如果我遗漏了任何重要信息或者我非常密集(双关语),请通知我。谢谢!
板:杰森TK1
CUDA:6.0(从https://developer.nvidia.com/jetson-tk1-support下载)
操作系统:L4T Ubuntu 14.04(来自https://developer.nvidia.com/jetson-tk1-support)
语言:Python 2.7
c - CULA:未定义的参考 cula 函数
我下载了适用于 Linux 的 CULA Dense R17 免费版。
我注意到在 lib 和 lib64 目录中,没有 libcula_lapack.so,但只有 libcula_lapack_basic.so。这应该是正常的,因为在 culatools 站点中指定在此版本中 cula_lapack.dll/so 在 cula_lapack_basic.dll/so 中重命名!
我以这种方式在 .bashrc 文件中设置环境变量:
我尝试编译一个非常简单的 c 程序来测试 cula 是否正确运行。
我编译:
我收到了这个错误:
可能在编译的指令中链接或程序中的包含文件是错误的!
如何解决这个编译问题?:roll: :roll: :( 你能帮帮我吗?