首页/文章/ 详情

Windows下安装代数多重网格求解器(AmgX)库

1年前浏览1223

0

写在前面

AmgX(Algebraic Multigrid Solver库是一个GPU加速的代数多重网格求解器库,可以加速模拟中计算密集的线性方程组求解部分。
既然是英伟达的开源库,那必须得拿下。本文中笔者将分享一下自己在Windows电脑上编译安装AmgX v2.3.0的过程,如果错误疏漏,恳请读者斧正。
AmgX仓库地址:https://github.com/NVIDIA/AMGX

笔者电脑信息如下:

    • 处理器:AMD Ryzen 7 6800H
    • 内存:16 GB
    • 显卡:NVIDIA GeForce RTX 3050
    • CUDA版本:11.8
    • 编译器:Microsoft Visual Studio 2022 BuildTools
    • MPI:Microsoft MPI 10.1.12498.52
    • CMake:Version 3.27.3

 

1

准备工作 

经过笔者的测试发现一些问题导致无法 正常配置和编译,经过查资料找到了一些小的修改,这些修改如下:


1.1

修改CMakeLists.txt


 
下载AmgX v2.3.0源码并解压,修改源码目录下的CMakeLists.txt,在开头处添加下面红框内的两行代码,可以让cmake成功检测依赖项。


1.2

复 制扩展文件


 
由于在CMakeLists.txt中启用了CUDA语言(上图中第30行),因此我们需要复 制一些扩展文件到相关的目录中来让编译器支持该语言,这些扩展文件是由英伟达提供的,保存在CUDA安装目录中。笔者安装的CUDA 11.8,故这些扩展文件及其位置如下图所示:

将上面这四个文件复 制到下面路径中,便可支持CUDA语言和顺利执行CMake配置(由于笔者安装的是Visual Studio BuildTools,只有编译器、相关库和其他构建工具,因此路径可能与完整安装Visual Studio有所差别)。
1C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170\BuildCustomizations

 

2

执行CMake及构建(编译)


 
这里我们执行cmake来生成项目构建文件(如Makefile、vcxproj文件等),执行下面命令,其中需要我们指定安装路径(将/path/to/install替换成安装路径)。
1PS AMGX-2.3.0/build> cmake .. -DCMAKE_INSTALL_PREFIX="/path/to/install"
所产生的日志如下图所示。


如果可以看待类似上述日志信息,没有报错(ERROR)的话,就可以执行MSBuild.exe构建程序来编译代码编译(需要将其所在目录添加到环境变量path中),详细命令如下:
1PS AMGX-2.3.0/build> MSBuild.exe .\ALL_BUILD.vcxproj -p:configuration="Release"

稍作等待之后便可完成编译。


编译完成后,输入下面命令完成安装:

1PS AMGX-2.3.0/build> MSBuild.exe .\INSTALL.vcxproj -p:configuration="Release"

执行上述命令时会看到类似下面的日志内容。

 

3

测试运行


 
在构建目录中便可测试运行,在AmgX GitHub主页有展示之前版本的AmgX的测试运行内容,这里我们也进行相同的运行测试,下面分别是使用一个进程和两个进程的测试日志。

使用一个进程:


使用两个进程:

注:如果出现无反应的情况,需要将amgxsh.dll拷贝到测试应用程序所在路径。
测试中没有任何报错,正确执行,完美收工;可阅读AmgX文档了解更多内容。

 


参考资料


 
  1. https://stackoverflow.com/questions/56636714/cuda-compile-problems-on-windows-cmake-error-no-cuda-toolset-found

  2. https://developer.nvidia.com/amgx


来源:有限元术
理论科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-23
最近编辑:1年前
寒江雪_123
硕士 | cae工程师 签名征集中
获赞 49粉丝 106文章 54课程 9
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈