这不是群论代数软件,而是cuda 矩阵计算软件
1. 生成其他精度的源代码
1.1 复制编辑 make.inc
cp make.inc-examples/make.inc.openblas ./make.inc
并修改其中的定义: OPENBLASDIR ?= /opt/OpenBLAS
这需要实现安装openblas到此处。文件夹解构:
/opt/OpenBLAS/include lib
这个 make.inc 是给 生成各精度代码时使用的。
1.2 生成其他精度源文件
make generate
除了s-c-d 三种精度的文件,还会生成一个叫做 CMake.src.cuda的文件,罗列了源文件的路径。
2. 生成Makefile
编辑 CMakeLists.txt关于openmp的部分,改成如下:
# ----------------------------------------
# locate OpenMP
find_package( OpenMP )
if (OPENMP_FOUND)
set(OpenMP_C_FLAGS "-fopenmp")
set(OpenMP_CXX_FLAGS "-fopenmp")
message( STATUS "Found OpenMP" )
message( STATUS " OpenMP_C_FLAGS ${OpenMP_C_FLAGS}" )
message( STATUS " OpenMP_CXX_FLAGS ${OpenMP_CXX_FLAGS}" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
endif()
即,增加了两行:
set(OpenMP_C_FLAGS "-fopenmp")
set(OpenMP_CXX_FLAGS "-fopenmp")
或者使用类似 cmake .. -DOpenMP_C_FLAGS='-flopenmp' 也可以
生成Makefile:
cmake .. -DMAGMA_ENABLE_CUDA=ON -DGPU_TARGET='Turing' -DBUILD_SHARED_LIBS=ON
3. 执行构建和测试
make -j
./testing/testing_dgetrf
#sudo make install
#如果只是看源代码,不需要install
效果图:
4. 运行集成测试程序
.../ex_magma/magma/build/testing$ ./testing_zunmqr_gpu
运行效果图: