问题标签 [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.
makefile - 安装时说未设置 CUDADIR 环境变量
我目前正在尝试安装MAGMA,但是尝试运行“sudo make install”会给我错误:
我确定 CUDADIR 已设置,并且已设置在 ~/.bash_profile 中,所以我不确定它为什么会失败。有什么理由可能找不到它吗?当我运行“make”时,它似乎工作正常。
linux - 如何安装岩浆?我 `make install` 运行良好,但 `make test` 导致错误
我想在服务器(centos)中安装 MAGMA 以使用 GEMM 功能。
在安装 MAGMA 之前,我已经在此服务器中安装了 CUDA 和 MKL,我通过运行 cuBLAS 示例程序和 MKL 示例程序检查两者是否运行良好。
在我描述我所发生的事情之前,我必须指出这台服务器中似乎没有 fortran。所以我通过以下方式安装 MAGMA:
- 我
make.inc-examples/make.inc.mkl-gcc
搬到../make.inc
- 我修改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
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
c++ - LNK2038、MSVS2017 MAGMA 的原因列表
我的目标是通过编译(双关语不是有意的)LNK2038“检测到'_ITERATOR_DEBUG_LEVEL'的不匹配:值'0'与值'2'不匹配”的原因列表,其他人可能有条不紊地遵循以调试自己的情况,我的情况将得到解决
我的情况:
要求:
- 视窗 10
- 制作
- 微博 2017
- 英特尔 Paralax Studio XE
- CUDA
重现:
- 下载岩浆
运行 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
- 手动设置
从生成的 VS 解决方案中,在Debug 模式下编译 magma和magma_sparse项目(无需编译 600+ 测试项目)
在单独的文件夹中放置示例代码和CMakeLists.txt
/li>运行 CMake(配置、生成)
- 打开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 上检查的事项:
- 所有依赖项(*.lib 文件)都使用相同的“调试/发布”标志编译
- 仔细检查实际使用的依赖项右键单击您的项目 -> 属性 -> 链接器 -> 输入 -> 附加依赖项
- 转到每个依赖项项目和您的项目,并通过右键单击项目 -> 属性 -> C/C++ -> 代码生成 -> 运行时库来检查构建标志
cuda - magma_dpotrf_gpu 给出分段错误
我有一个 cblas 和 lapack 代码,我正试图将其“转换”为岩浆代码以利用 GPU。这是我工作正常的 CPU 代码:
现在,对于 magma GPU 版本,我这样做了:
由于某种原因,最后一行给出了分段错误。我在这里做错了什么?这一切似乎都是正确的。
magma - 为什么 Magma 2.5 不可编译?
我正在尝试用NVIDIA GTX 960M在我的笔记本电脑上编译Magma 2.5,它总是提示联动问题。
我已将 cmake 版本升级到最新的可用版本(3.14.3)。以下是错误输出的一部分。
c++ - ipiv magma_getrs_gpu 上的双重释放或损坏(输出)
我有以下代码:
在最后一行我收到一个错误double free or corruption (out): 0x000000001dd18540
。我检查了数组magma_dgemm
,它们似乎是正确的。尺寸也是正确的,因为我在 cpu lapack 版本上有这个代码,它们是一样的。所以错误似乎在h_ipiv
,但我不知道有什么问题h_ipiv
。
任何想法?
cuda - 如何在 GPU 上执行基本操作(+ - * /)并将结果存储在上面
我有以下代码行,gamma
是一个 CPU 变量,之后我需要复制到 GPU。gamma_x
并且delta
也存储在CPU上。有什么方法可以执行以下行并将其结果直接存储在 GPU 上?所以基本上,在 GPU 上 host gamma
,gamma_x
并delta
在 GPU 上获得以下行的输出。之后的行会大大加快我的代码速度。我试过了,magma_dcopy
但到目前为止我找不到让它工作的方法,因为它的输出magma_ddot
是 CPU 的两倍。
cuda - 通过在循环内使用 cuda 内核来降低性能
我试图提高慢代码的性能。该代码使用了 cblas,我试图通过使用 magma 和 cuda 来升级性能。首先,我刚刚将 cblas 调用传递给岩浆。但它需要循环内的 CPU <-> GPU 副本,因此它使程序运行速度比 cblas 版本还要慢。然后,由于 stackoverflow 成员的建议,我开始使用 cuda 内核,因为这样我可以减少 1 个副本,从而稍微提高了性能。但是,我的代码仍然比 CPU 代码慢得多。是在循环内调用内核引起的吗?有没有办法避免循环内的所有 CPU <-> GPU 副本?我开始认为也许这段代码不值得并行化。
这是我的代码: