问题标签 [magma]
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.
cmake - CMake find_library 找不到库
我想出了以下超级简单的 FindMAGMA.cmake 脚本来查找 MAGMA 库,因为周围没有:
获取包含和库路径很简单。但是,除非我包含扩展名,否则它在 Ubuntu 中找不到文件“libmagma.a”或在 Mac OS X 中找不到文件“libmagma.dylib”,但这违背了目的,不是吗?谁能建议我在这里做错了什么?
cuda - cuBLAS 的标准 Fortran 接口
我在 Linux 上使用了一个商业模拟软件,它可以进行密集的矩阵操作。该软件默认使用英特尔 MKL,但它允许我将其替换为自定义 BLAS/LAPACK 库。此库必须是共享对象 (.so) 库,并且必须导出 BLAS 和 LAPACK 标准例程。该软件都需要标准的 Fortran 接口。
为了验证我是否可以使用自定义库,我编译了 ATLAS 并在其中链接了 LAPACK(来自 netlib)。该软件能够毫无问题地使用我编译的 ATLAS 版本。
现在,我想让软件使用 cuBLAS 以提高仿真速度。我遇到了 cuBLAS 不导出标准 BLAS 函数名称(它们有cublas
前缀)的问题。此外,库 cuBLAS 库不包含 LAPACK 例程。我readelf -a
用来检查导出的函数。
另一方面,我尝试使用MAGMA来解决这个问题。我成功编译并链接到所有 ATLAS、LAPACK 和 cuBLAS。但它仍然没有导出正确的函数,也没有在最终的共享对象中包含 LAPACK。我不确定这是应该的方式还是我在构建过程中做错了什么。
我也找到了CULA,但我不确定这是否能解决问题。
是否有人试图将 cuBLAS/LAPACK(或适当的包装器)链接到一个(.so)导出具有正确函数名称的标准 Fortran 接口?我相信这在概念上是可能的,但我不知道该怎么做!
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 并将结果平铺到更大的矩阵中,这似乎不是很有效。或者,有没有人知道另一个可能提供我正在寻找的实现或论文?
visual-studio-2013 - CMake thinks Intel Composer XE 2013 is broken
I'm trying to compile Magma-1.4.1 for Microsoft Visual Studio Professional 2013 on Windows 7-64 bit using CMake 2.8.12.2. I also installed the Intel Fortran Compiler.
I open CMake -> I specify the path for the source code and for the binaries -> I click on Configure -> I select Visual Studio 12 Win64 with the option Specify native compilers -> I specify the path for the Fortran Compiler (C:/Program Files (x86)/Intel/Composer XE 2013 SP1/bin/intel64/ifort.exe).
During the generation, the build always fails giving the following error:
Check for working Fortran compiler using: Visual Studio 12
Check for working Fortran compiler using: Visual Studio 12 -- brokenCMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeTestFortranCompiler.cmake:54 (message): The Fortran compiler "ifort" is not able to compile a simple test program.
I had already added the ifort.exe path to the environment variables.
I have tried all the possible combinations of 32 and 64 bit both for the version of Visual Studio and for the Intel Fortan Compiler, but I still get the same error. I have also tried to use the native compilers but I obtain the same result.
If I open Visual Studio and I create a Fortan project, instead, I can build and run it without issues.
Could anybody help, please?
fortran - 从 Fortran 程序调用 MAGMA
我正在使用 MAGMA 从 Fortran 代码库中卸载 dsyevd 调用(它计算平方实对称矩阵 A 的所有特征值和特征向量),调用 MAGMA 例程的子例程如下。
MAGMA 库“开箱即用”
运行时,MAGMA 库失败,scif_writeto failed a for mic-1 with err 6 error in magma_mic_bindings 在第 152 行,我的问题是为什么?
我正在使用 MAGMA1.1,我的编译行是
我的链接线是
c - magmablas_dgemm 不适用于更大的网格尺寸
我是使用 cuda 和岩浆库的新手。我正在尝试一些关于测试问题的函数,一个 2D 热方程。我编写的代码对于 32、64 和 128 的网格大小似乎非常有效。但是对于 256 或更大的网格大小,它会产生错误的结果。我只在这里发布部分代码,足以重现错误。传输最终矩阵并在 matlab 中查看它表明第二次调用 magmablas_dgemm 将错误引入解决方案。
有没有人可以看到为什么这个代码会因为更大的网格尺寸而中断?
c - 在 mex 文件 matlab 中使用 magma_dysevd
我尝试在matlab中编写使用magma库,所以基本上我编写了一个mexfunction,它使用magma函数合并了c代码,然后将此mexfunction编译成mexa64文件,因此我可以在matlab中使用。
mexfunction或源c代码如下:(称为eig_magma)
因为使用 magma 需要 cuda 和 magma lib 我编写了 makefile 来将代码编译成 mex 文件:
它可以编译成功,但是当我在 matlab 中运行 eig_magma 时,当 matlab 执行到
magma_dsyevd(jobz,uplo,N,h_R,lda,w,h_work,lwork,iwork,liwork,&info);
matlab 崩溃了......我也尝试过只用c 编写eig_magma,不使用mex 函数,它编译成功并且工作正常。
任何人都知道如何解决这个问题?
谢谢
玉心
cuda - CUDA lapack 库(CULA 和 MAGMA)作为设备功能
对 CUDA(CULA 或 MAGMA)中的 lapack 例程的调用是否可以在 CUDA 内核中而不是从主机中实例化?(__device 函数而不是 __global 函数)如果不可能,那么如何在 CUDA 中实现(_device)线性代数例程?我的目标是在 CUDA 中并行运行一些 Lapack 函数(sgesvd、sgesv..),并且我的应用程序中的调用必须从设备而不是主机进行。
c++ - MAGMA 库:magma_dgemm 和 magmablas_dgemm 之间的区别
在最新的岩浆线性代数库(版本 1.6.1)中,http ://icl.cs.utk.edu/magma/software/,在执行 dgemm 功能的测试代码(源代码:testing_dgemm.cpp)中,有调用函数magma_dgemm
和magmablas_dgemm
. 有人可以澄清两者之间的区别吗?哪一个更通用(不仅与 GPU 相关)?
威拉万