源码下载地址:Release v2.3.0 · NVIDIA/AMGX · GitHub
因为我电脑安装的cuda版本为cuda12.0,而源码要求的是cuda11.0. 本想修改CmakeList.txt来避免这个版本问题,但搞了半天还是各种编译报错,于是不得已去安装了cuda11.8.
然后按照教程:Windows下安装代数多重网格求解器(AmgX)库编译安装的准备工作、编译过程及相关测试https://mp.weixin.qq.com/s/ZRmOolVSrxVmMvYz4M6csQ
第一步:新建个build文件夹
第二步:在build下右键终端输入以下编译命令:
cmake .. -DCMAKE_INSTALL_PREFIX="D:\AMGx\AMGX-2.3.0"
运行不报错即可。可能会出现以下问题,“No package 'mpi-cxx' found ”但没有error就行,不用管它
第三步:接着运行以下命令:
MSBuild.exe .\INSTALL.vcxproj -p:configuration="Release"
进行构建和编译后,终于没有错误了,有一堆的警告(但不影响)。
编译完后在进行测试时,出现命令回车后,如果出现无反应的情况,需要将amgxsh.dll拷贝到测试应用程序所在路径。(这里的测试应用程序就是指.exe文件)
这里强烈推荐大家使用:IObit Uninstall 软件进行软件卸载。因为你可能很多软件重装后需要卸载之前的软件。这个能卸载的很干净。
MPI测试使用了下面的教程,显示测试没问题,但是为什么Cmake还是找不到mpi呢?
MPI 在Windows11 和 VS2019 安装、测试、基本使用_mpi windows安装_AI_潜行者的博客-CSDN博客
-----------------------------------------上面是终端命令编译,也可以用软件来编译-----------------------------
上面是使用终端命令进行编译,也可以先用Cmake软件生成sln解决方案,再用VS打开AMG.sln
使用VS来代替终端命令编译项项目。
-------------------------------------------成功编译后如何在调用AMG库-----------------------------------------
在我们自己的项目中添加include 和静态库lib和动态库dll即可
开源库AMGx编编译生成的库:
将静态库lib 和头文件加入到项目中:
将动态库dll放到自己的项目目录下:
打开自己的项目,添加相应头文件即可使用开源库的各种API接口:
在自己的代码文件中导入
#include<amgx_c.h>库即可使用各种API接口了
AMGX库的API接口函数的介绍和函数传入传出的参数介绍:
https://github.com/NVIDIA/AMGX/blob/main/doc/AMGX_Reference.pdf