问题标签 [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.

0 投票
1 回答
436 浏览

makefile - 安装时说未设置 CUDADIR 环境变量

我目前正在尝试安装MAGMA,但是尝试运行“sudo make install”会给我错误:

我确定 CUDADIR 已设置,并且已设置在 ~/.bash_profile 中,所以我不确定它为什么会失败。有什么理由可能找不到它吗?当我运行“make”时,它似乎工作正常。

0 投票
1 回答
754 浏览

linux - 如何安装岩浆?我 `make install` 运行良好,但 `make test` 导致错误

我想在服务器(centos)中安装 MAGMA 以使用 GEMM 功能。

在安装 MAGMA 之前,我已经在此服务器中安装了 CUDA 和 MKL,我通过运行 cuBLAS 示例程序和 MKL 示例程序检查两者是否运行良好。

在我描述我所发生的事情之前,我必须指出这台服务器中似乎没有 fortran。所以我通过以下方式安装 MAGMA:

  1. make.inc-examples/make.inc.mkl-gcc搬到../make.inc
  2. 我修改make.inc:

我注释掉了:

  • 堡垒 = gfortran
  • FFLAGS = -O3 $(FPIC) -DNDEBUG -DADD_ -Wall -Wno-unused-dummy-argument
  • F90FLAGS = -O3 $(FPIC) -DNDEBUG -DADD_ -Wall -Wno-unused-dummy-argument -x f95-cpp-input

-lgfortran并删除

  • LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread -lstdc++ -lm -lgfortran

我也在这个文件中设置MKLROOT=/home/lixin/intel/mkl和。CUDADIR=/usr/local/cuda

  1. 我跑make install prefix=/home/lixin/install/了,看起来不错,我没有看到任何错误标签。
  2. 我运行make test,它很快就会导致错误: 在此处输入图像描述
0 投票
1 回答
104 浏览

c - 为什么这个 MEXed C/magma 代码段错误,而独立 C 代码工作?

以下 MEXed C 代码只是调用 magma 来反转矩阵。独立的 C 代码(也已发布)有效,但 mex 代码崩溃。

我已经三重检查了文档,验证了其他 magma 功能是否按预期工作,并在 Magma 论坛上发布并被告知我的代码很好(这篇文章是 Magma 论坛的交叉帖子)。这意味着问题出在mex上。我想知道是什么导致 mex 代码出现段错误以及如何让它按预期运行。

混合代码:

mex CC=gcc LDFLAGS="-lmagma -lcudart -lcublas" magmaZinv.c我从matlab编译它, 然后运行:

独立 C 代码:

我编译:gcc -lmagma -lcudart Ccode.c -o Ccode.o

0 投票
1 回答
454 浏览

c++ - LNK2038、MSVS2017 MAGMA 的原因列表

我的目标是通过编译(双关语不是有意的)LNK2038“检测到'_ITERATOR_DEBUG_LEVEL'的不匹配:值'0'与值'2'不匹配”的原因列表,其他人可能有条不紊地遵循以调试自己的情况,我的情况将得到解决

我的情况:

要求:

  • 视窗 10
  • 制作
  • 微博 2017
  • 英特尔 Paralax Studio XE
  • CUDA

重现:

  1. 下载岩浆
  2. 运行 CMake GUI

    • 手动设置GPU_TARGET=Pascal(我的卡:GeForce GTX 1070 计算能力:6.1)
    • 手动设置MKLROOT=D:/Program Files (x86)/IntelSWTools/parallel_studio_xe_2019.0.045/compilers_and_libraries_2019/windows/mkl (按照 README-Windows 中的说明)
    • LAPACK_LIBRARIES:使用https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor确定

      • 我的选择
      • D:/Program Files (x86)/IntelSWTools/parallel_studio_xe_2019.0.045/compilers_and_libraries_2019/windows/mkl/lib/intel64_win/mkl_intel_lp64.lib;D:/Program Files (x86)/IntelSWTools/parallel_studio_xe_2019.0.045/compilers_and_libraries_2019/windows/mkl/lib/intel64_win/mkl_intel_thread.lib;D:/Program Files (x86)/IntelSWTools/parallel_studio_xe_2019.0.045/compilers_and_libraries_2019/windows/mkl/lib/intel64_win/mkl_core.lib;D:/Program Files (x86)/IntelSWTools/compilers_and_libraries_2019.0.117/windows/compiler/lib/intel64_win/libiomp5md.lib
  3. 从生成的 VS 解决方案中,在Debug 模式下编译 magmamagma_sparse项目(无需编译 600+ 测试项目)

  4. 在单独的文件夹中放置示例代码CMakeLists.txt

    /li>
  5. 运行 CMake(配置、生成)

  6. 打开VS解决方案,并在Debug模式下编译

有问题的结果:

1>magma_sparse.lib(magma_sparse_generated_djacobisetup.cu.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in magma.lib(interface.obj)

1>magma_sparse.lib(magma_sparse_generated_djacobisetup.cu.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in magma.lib(interface.obj)

----------

在 LNK2038 上检查的事项:

  1. 所有依赖项(*.lib 文件)都使用相同的“调试/发布”标志编译
    • 仔细检查实际使用的依赖项右键单击您的项目 -> 属性 -> 链接器 -> 输入 -> 附加依赖项
    • 转到每个依赖项项目和您的项目,并通过右键单击项目 -> 属性 -> C/C++ -> 代码生成 -> 运行时库来检查构建标志
0 投票
1 回答
378 浏览

c++ - 如何在 Visual Studio 中编译使用 MAGMA 的代码

给定MAGMA 附带的示例代码,如何在 Visual Studio 中编译它(或您制作的任何其他使用 MAGMA 的代码)?

0 投票
1 回答
88 浏览

cuda - magma_dpotrf_gpu 给出分段错误

我有一个 cblas 和 lapack 代码,我正试图将其“转换”为岩浆代码以利用 GPU。这是我工作正常的 CPU 代码:

现在,对于 magma GPU 版本,我这样做了:

由于某种原因,最后一行给出了分段错误。我在这里做错了什么?这一切似乎都是正确的。

0 投票
1 回答
112 浏览

magma - 为什么 Magma 2.5 不可编译?

我正在尝试用NVIDIA GTX 960M在我的笔记本电脑上编译Magma 2.5,它总是提示联动问题。

我已将 cmake 版本升级到最新的可用版本(3.14.3)。以下是错误输出的一部分。

0 投票
1 回答
51 浏览

c++ - ipiv magma_getrs_gpu 上的双重释放或损坏(输出)

我有以下代码:

在最后一行我收到一个错误double free or corruption (out): 0x000000001dd18540。我检查了数组magma_dgemm,它们似乎是正确的。尺寸也是正确的,因为我在 cpu lapack 版本上有这个代码,它们是一样的。所以错误似乎在h_ipiv,但我不知道有什么问题h_ipiv

任何想法?

0 投票
1 回答
169 浏览

cuda - 如何在 GPU 上执行基本操作(+ - * /)并将结果存储在上面

我有以下代码行,gamma是一个 CPU 变量,之后我需要复制到 GPU。gamma_x并且delta也存储在CPU上。有什么方法可以执行以下行并将其结果直接存储在 GPU 上?所以基本上,在 GPU 上 host gammagamma_xdelta在 GPU 上获得以下行的输出。之后的行会大大加快我的代码速度。我试过了,magma_dcopy但到目前为止我找不到让它工作的方法,因为它的输出magma_ddot是 CPU 的两倍。

0 投票
1 回答
237 浏览

cuda - 通过在循环内使用 cuda 内核来降低性能

我试图提高慢代码的性能。该代码使用了 cblas,我试图通过使用 magma 和 cuda 来升级性能。首先,我刚刚将 cblas 调用传递给岩浆。但它需要循环内的 CPU <-> GPU 副本,因此它使程序运行速度比 cblas 版本还要慢。然后,由于 stackoverflow 成员的建议,我开始使用 cuda 内核,因为这样我可以减少 1 个副本,从而稍微提高了性能。但是,我的代码仍然比 CPU 代码慢得多。是在循环内调用内核引起的吗?有没有办法避免循环内的所有 CPU <-> GPU 副本?我开始认为也许这段代码不值得并行化。

这是我的代码: