DualSPHysics v5.0源码编译教程,新手入门
DualSPHysics V5.0源码编译教程,问题解决,案例展示
一、前期准备
DualSPHysics是可以编译运行在CPU和GPU上的,所以需要安装C++编译器:例如gcc,和CUDA编译器:nvcc。
如果电脑上不支持CUDA,那么DualSPHysics也是可以运行的,只使用了CPU的那部分,而不用GPU。
这里需要注意的是,如果要使用可执行文件在GPU上运行DualSPHysics,仅需要支持NVIDIA CUDA的GPU卡,并且必须安装最新版本的GPU驱动程序。 但是,要编译源代码,必须在计算机上安装GPU编程语言CUDA和nvcc编译器。 CUDA Toolkit 的版本要对应DualSPHysics的版本。例如由下图可知,DualSPHysics v5.0对应到的CUDA版本最高为9.2,而DualSPHysics v5.2对应到的CUDA版本最高为11.7。如果下载更高的CUDA版本,将会出问题。
我们是要编译源代码,所以需要下载CUDA Toolkit(里边包含了编程语言CUDA和nvcc编译器)
1. 安装C++编译器
以下是一些常用的C++编译器,只要电脑中有其中一个就可以了。
比如我之前电脑下载了Visual Studio,里边就包含MSVC,是C++编译器的一种,可以直接使用。
2. 安装CUDA
首先要查看自己的电脑系统是否支持CUDA。
具体查看方式:计算机管理–>设备管理器–>显示适配器
因为CUDA是NVIDIA旗下产品,所以DualSPHysics v5.0及以前版本只能在NVIDIA上运行,在AMD上是不行的。但是V5.2版本及以后是可以运行在AMD GPU上的
或者看自己电脑里有没有NVIDIA控制面板,如果有的话,则支持CUDA
DualSPHysics_v5.0及以前版本是不支持AMD的,但是最新版的DualSPHysics_v5.2我发现在change list里说明最新版是支持AMD GPUs的。本文讨论的是V5.0版本。
下载安装CUDA,注意DualSPHysics v5.0对应的一定要下载v9.2版本的CUDA,具体下载安装可以参考我另一篇教程:https://blog.csdn.net/changyana/article/details/135876568
完成后,在cmd里输入nvcc -V
,可以看到CUDA的版本,则表示安装成功!
二、下载源码
直接下载整个包或者从github上拉源码都是可以的。
我是直接下载的整个包,下载地址:https://dual.sphysics.org/downloads/,填写个人信息,然后选择需要的版本进行下载。(我选择的是DualSPHysics_v5.0.1.zip进行下载,没有下最新版的DualSPHysics_v5.2.1.zip)
这两个版本的区别是:
① DualSPHysics updated for latest compilers (Visual Studio 2022 (v143), gcc 11.2, CUDA 11.7).官方支持的编译环境从Visual Studio 2015变到了Visual Studio 2022
② DualSPHysics compiled for AMD GPUs as well.同时也支持了AMD,之前只支持NVIDIA)
如下图,左边红色是v5.0的编译器,右边绿色是v5.2的编译器。
如下图,是v5.2的change list
下载解压完之后,进入src文件夹,可以看到编译所需的内容。
三、编译
在Windows系统上,可以使用VisualStudio进行编译,也可以使用CMAKE进行编译。
本文尝试用Visual Studio进行编译,DualSPHysics_v5.0对应的VisualStudio是2015版本。我的Visual Studio之前下载的是2019版本,但是也可以使用2015的编译器,办法是在Visual Studio 2019里安装 Visual Studio 2015 的“MSVC v140 - VS 2015 C++ 编译器工具集”(Visual C++ 14.0),具体安装过程如下:
打开Visual Studio Installer
然后点击修改
进入之后在“使用C++的桌面开发”里勾选MSVC v140 - VS 2015 C++ 生成工具 (v14.00),然后点击右下角的修改。等待安装完成。
等待安装完成后,重启Visual Studio 2019。然后在Visual Studio 2019中打开项目。
选择DualSPHysics_v5.0–>src–>VS–>DualSPHysics5Re_vs2015.sln打开。
打开之后软件给我提示可以升级到最新的。我这里选择不升级,因为要用匹配的2015版本进行编译的。
然后给它进行匹配使用2015版本的工具集:
在项目上右键,然后点击“属性”
在配置属性——>常规——>平台工具集,下拉菜单里边选择Visual Studio 2015(v140),点击右下角的确定,这样就可以使用2015进行编译了。
之后还需要配置一下编译的类型。在上方的配置下拉框里选择Release。
(Release构建出来的DualSPHysics是可以使用GPU&CPU,而下方的ReleaseCPU是只针对CPU,不能使用GPU)
更改完之后,点击右键进行生成编译。等待编译成功…
四、报错解决
- 如果报错说MSB4019 找不到导入的项目“D:\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 9.2.props”。
解决办法:https://blog.csdn.net/changyana/article/details/135881246 - 如果报错说错误MSB8036 The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting “Retarget solution”.找不到 Windows SDK 版本 8.1。请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
解决办法:https://blog.csdn.net/changyana/article/details/135884668
没有什么报错的话就跑起来了,等待编译
编译完成后,就会提示生成成功
五、验证
查看编译完成的地址:在项目属性里可以看到路径
然后可以看到该目录下的这几个文件都是最新的,时间都是刚刚更改编译后的时间
我们来跑一个案例测试一下。
可以直接运行DualSPHysics/examples下的示例,如图,选择第一个主要示例编译运行。
先以文本形式打开wCaseDambreak_win64_GPU.bat,可以看到这里默认就是调用刚刚编译生成的DualSPHysics可执行文件,如果自己更改了刚刚源码编译生成的路径,这里也需要对应更改一下(注意这个示例还使用了其它后处理的文件,比如partvtk和partvtkout等,所以要注意调用路径的正确性。。。)
如果直接就是默认的路径,上边已经确认了,直接双击wCaseDambreak_win64_GPU.bat运行
计算完成之后会提示All done
接着刷新一下就可以看到在同级目录下生成了案例_out文件夹,里边就是DualSPHysics计算生成的结果。
使用可视化软件打开看看,我这里是使用了ParaView进行展示的。
图片:
视频:
ParaView展示DualSPHysics案例
可以看到由自己编译出的DualSPHysics进行计算是没有问题的!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)