AmgX(Algebraic Multigrid Solver)库是一个GPU加速的代数多重网格求解器库,可以加速模拟中计算密集的线性方程组求解部分。既然是英伟达的开源库,那必须得拿下。本文中笔者将分享一下自己在Windows电脑上编译安装AmgX v2.3.0的过程,如果错误疏漏,恳请读者斧正。笔者电脑信息如下:
- 显卡:NVIDIA GeForce RTX 3050
- 编译器:Microsoft Visual Studio 2022 BuildTools
- MPI:Microsoft MPI 10.1.12498.52
经过笔者的测试发现一些问题导致无法 正常配置和编译,经过查资料找到了一些小的修改,这些修改如下:
下载AmgX v2.3.0源码并解压,修改源码目录下的CMakeLists.txt,在开头处添加下面红框内的两行代码,可以让cmake成功检测依赖项。
由于在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
这里我们执行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"
在构建目录中便可测试运行,在AmgX GitHub主页有展示之前版本的AmgX的测试运行内容,这里我们也进行相同的运行测试,下面分别是使用一个进程和两个进程的测试日志。
注:如果出现无反应的情况,需要将amgxsh.dll拷贝到测试应用程序所在路径。测试中没有任何报错,正确执行,完美收工;可阅读AmgX文档了解更多内容。