计算化学公社

标题: AMD_5950x上编译vasp5.4.4在不同环境下的效率对比 [打印本页]

作者
Author:
ShangChien    时间: 2021-9-26 21:50
标题: AMD_5950x上编译vasp5.4.4在不同环境下的效率对比
本帖最后由 ShangChien 于 2021-9-26 22:02 编辑

毕业了,没有计算资源。参考sob老师的购机推荐http://sobereva.com/444,最近自己组装了一台5950x电脑(128G内存)。使用MKL编译的vasp效率较高。众所周知,在AMD上使用intel家的mkl库时,需要特殊的编译和使用技巧https://documentation.sigma2.no/jobs/mkl.html,但是链接中的方法并不适用vasp。
新版微软windows内置的linux子系统(WSL2)势头正盛(一般是ubuntu20.04)https://docs.microsoft.com/zh-cn/windows/wsl/,我直接在win11下安装了ubuntu子系统。参考各路网络上的AMD配置进行编译,大多数方法在编译或者运行vasp时会有报错。经过多次实验,针对vasp.5.4.4来说,使用intel2019http://bbs.keinsci.com/thread-11614-1-1.html,参考社长在centos上编译vasp的方法http://bbs.keinsci.com/thread-11812-1-1.html和另一个ubuntu编译的帖子https://blog.csdn.net/weixin_50987648/article/details/109035672
此外还需修改makefile.include以下参数:
  1. OFLAG = -O2 -march=core-avx2 #使用amd的avx2指令集
  2. ...
  3. OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o $(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
  4. ...
复制代码
编译完成后使用AMD平台提升MKL性能的小技巧(在~/.bashrc中添加环境):
  1. #AMD trick
  2. export MKL_DEBUG_CPU_TYPE=5
  3. export MKL_CBWR=AVX2
  4. export I_MPI_PIN_DOMAIN=numa
复制代码
最后使用sob老师的测试任务包(Hg)中的IN-long作为INCAR进行测试(一共20个离子步),
16core不加tirck环境,32core不加tirck环境,16core添加tirck环境
最终结果如下:
(, 下载次数 Times of downloads: 70)
结论:理解多线程技术http://sobereva.com/392,添加AMD专属环境,可以更加高效地使用计算资源,提升vasp运行速度。



作者
Author:
万里云    时间: 2021-9-27 10:36
最近AMD以clang/flang+llvm搞了一套新的编译器AOCC和新的数学库AOCL,不知道效率怎么样。
作者
Author:
abin    时间: 2021-9-27 11:22
所谓的tricky 就是限定指令集。

如果不限定,为了保证兼容性,
intel系列工具会默认AVX指令集,当然会慢。

用AOCC吧……
作者
Author:
ShangChien    时间: 2021-9-27 18:25
abin 发表于 2021-9-27 11:22
所谓的tricky 就是限定指令集。

如果不限定,为了保证兼容性,

不熟悉AOCC,本来也想用AMD的编译器,但是vasp官方论坛里一大片指责开发者不作为,不提供AMD处理器的编译方法。好事者自行编译也是有明显问题https://zhuanlan.zhihu.com/p/293300472
作者
Author:
ShangChien    时间: 2021-9-27 18:28
abin 发表于 2021-9-27 11:22
所谓的tricky 就是限定指令集。

如果不限定,为了保证兼容性,

可以开源分享一下您的AOCC编译方法吗?
作者
Author:
biogon    时间: 2021-9-27 19:10
ShangChien 发表于 2021-9-27 18:25
不熟悉AOCC,本来也想用AMD的编译器,但是vasp官方论坛里一大片指责开发者不作为,不提供AMD处理器的编译 ...

用AOCC其实我觉得还不如直接用GNU编译器,编别的程序没感觉有什么差别

作者
Author:
abin    时间: 2021-9-27 19:15
ShangChien 发表于 2021-9-27 18:28
可以开源分享一下您的AOCC编译方法吗?

没有设备,没有测试过。
我只是读了说明文档。

开发者不作为之说,真是天方夜谭。
开发者论坛有提及,
开发者手里暂无任何AMD平台设备,
拿什么做调试?


作者
Author:
loovfnd    时间: 2021-11-8 08:21
本帖最后由 loovfnd 于 2021-11-8 09:13 编辑

5950X内存通道不够多呀,对vasp计算有啥影响吗

作者
Author:
ShangChien    时间: 2021-11-8 11:44
loovfnd 发表于 2021-11-8 08:21
5950X内存通道不够多呀,对vasp计算有啥影响吗

说实话,通道数确实少,但是通道数多的7742价格也不是正比的关系。反正我是单根32G,四槽插满了,一共是128中等体系应该没问题。通道数和运行效率的关系没测过。有一个缺点是这个128G内存没有ECC纠错功能。
作者
Author:
loovfnd    时间: 2021-11-17 09:02
ShangChien 发表于 2021-11-8 11:44
说实话,通道数确实少,但是通道数多的7742价格也不是正比的关系。反正我是单根32G,四槽插满了,一共是1 ...

32G的ECC内存什么品牌型号?价格大概多少呀。主板用的什么呀,我这也买了这个U一直在琢磨怎么做计算用。
作者
Author:
ShangChien    时间: 2021-11-17 11:07
本帖最后由 ShangChien 于 2021-11-17 12:20 编辑
loovfnd 发表于 2021-11-17 09:02
32G的ECC内存什么品牌型号?价格大概多少呀。主板用的什么呀,我这也买了这个U一直在琢磨怎么做计算用。

我用的是芝奇钢牙,没有ECC纠错。32G一条大概1000吧(看渠道)。关于你的问题,我的个人认识如下(不一定正确):
带有ECC纠错的内存一般都是服务器用的,三星居多,价格也不会贵多少,但是一般服务器用的内存插槽和民用的不一定通用。具体细节自行调研吧
作者
Author:
loovfnd    时间: 2021-11-17 11:38
ShangChien 发表于 2021-11-17 11:07
我用的是芝奇钢牙,没有ECC纠错。32G一条大概1000吧(看渠道)。关于你的问题,我的个人认识如下(不一定 ...

这样啊,主板弄个B550重炮手,配32*4的非服务器内存呗。散热用不用水冷。
作者
Author:
ShangChien    时间: 2021-11-17 12:17
本帖最后由 ShangChien 于 2021-11-17 12:19 编辑
loovfnd 发表于 2021-11-17 11:38
这样啊,主板弄个B550重炮手,配32*4的非服务器内存呗。散热用不用水冷。

我记错了,5950x是支持ECC内存的,不支持RECC。插槽通不通用你自己研究一下呗!
https://www.zhihu.com/question/478181313/answer/2046643575#:~:text=AMD%20%E9%94%90%E9%BE%999%205950,%E6%89%8D%E5%8F%AF%E4%BB%A5%E6%94%AF%E6%8C%81RECC%E5%86%85%E5%AD%98%E3%80%82
作者
Author:
Entropy.S.I    时间: 2021-11-17 16:54
ShangChien 发表于 2021-11-17 12:17
我记错了,5950x是支持ECC内存的,不支持RECC。插槽通不通用你自己研究一下呗!
https://www.zhihu.com/ ...

正代Ryzen都支持ECC-UDIMM,但同时支持的主板很少,已知华擎全家X570、B550都支持ECC-UDIMM。现在能买到的ECC-UDIMM内存最高频率是3200MHz,将就用就好,3200MHz双通道带宽远远不能喂饱5950X的16个zen3核心。我最近装的一套MD工作站用的就是5950X + 2*32GB 3200MHz ECC-UDIMM
作者
Author:
Marineking    时间: 2021-11-27 21:33
老师您好,请问我在编译的时候出现错误提示:
pade fit.F(2388): catastrophic error:Function return parameter requires SSE register while SSE is disabled.
compilation aborted for pade_fit.f90(code 1)
我的CPU是线程撕裂者3970X,用oneAPI装的。
作者
Author:
ShangChien    时间: 2021-11-28 16:31
Marineking 发表于 2021-11-27 21:33
老师您好,请问我在编译的时候出现错误提示:
pade fit.F(2388): catastrophic error:Function return par ...

使用2019版的intel编译器,链接论坛里有。
论坛里好多反馈oneAPI和AMD不兼容的问题
作者
Author:
Marineking    时间: 2021-11-28 17:01
ShangChien 发表于 2021-11-28 16:31
使用2019版的intel编译器,链接论坛里有。
论坛里好多反馈oneAPI和AMD不兼容的问题

昨天晚上找了一天的方法,发现我发的报错的代码上面还有一行没贴出来,出现了xHOST这个关键字,但是我Makefile文件肯定是改了的。我发现OFLAG上面还有一行FFLAG出现了xHOST,我删掉之后就能编译了,但是还是不能并行计算,只能单核。。。。
作者
Author:
Songchi    时间: 2022-2-28 11:09
loovfnd 发表于 2021-11-17 09:02
32G的ECC内存什么品牌型号?价格大概多少呀。主板用的什么呀,我这也买了这个U一直在琢磨怎么做计算用。

ecc内存主要有reg ecc和纯ecc 两种,华硕和华擎的部分amd主板是支持使用纯ecc内存的,我现在就是5900x+32g 3200mhz *2的配置,主板是华硕的x570 tuf。一般品牌就三星、镁光,不过在零售渠道确实不太方便买。我也是在闲鱼淘的俩根。
作者
Author:
wxlsr    时间: 2022-4-16 14:50
您好,我想请教一下这个安装过程的一些细节,正好我的电脑跟你的配置一样,想安装vasp遇到了一些问题,方便指导一下吗?
作者
Author:
ShangChien    时间: 2022-4-19 14:27
wxlsr 发表于 2022-4-16 14:50
您好,我想请教一下这个安装过程的一些细节,正好我的电脑跟你的配置一样,想安装vasp遇到了一些问题,方便 ...

别跑呀,直接问
作者
Author:
wxlsr    时间: 2022-5-22 00:20
你好朋友,能分享这个详细安装过程吗?我弄了好久也弄不好 win11安装 WSL2弄好了,安装parallel_studio_xe_2019_update1_cluster_edition就出问题了, 后面环境变量也没弄好,非常感谢
作者
Author:
gog    时间: 2022-5-22 10:10
近两年的AMD处理器,对VAsP支持比较好。
作者
Author:
ShangChien    时间: 2022-5-23 16:30
wxlsr 发表于 2022-5-22 00:20
你好朋友,能分享这个详细安装过程吗?我弄了好久也弄不好 win11安装 WSL2弄好了,安装parallel_studio_xe_ ...

安装parallel_studio_xe_2019编译器,照着社长的教程就好了。装好编译器后,参考前面提到的csdn帖子:降级gcc编译器。最后修改makefile.include进行make编译。等结束无报错,测试没问题就ok了。
作者
Author:
wang5360848    时间: 2022-6-20 17:54
您好,请问我用ubuntu虚拟机vasp编译完后,运行mpirun -np 4 vasp时出现
Floating point exception (core dumped)
的错误,是什么原因呢?
作者
Author:
ShangChien    时间: 2022-6-21 09:17
本帖最后由 ShangChien 于 2022-6-21 09:20 编辑
wang5360848 发表于 2022-6-20 17:54
您好,请问我用ubuntu虚拟机vasp编译完后,运行mpirun -np 4 vasp时出现
Floating point exception (core  ...

具体原因我也不知道,可能是编译器问题,也可能是你输入设置问题。
  1. Floating point exception (core dumped)
复制代码
以上报错产生的原因有很多,例如一个数除以0,或者其他非法操作,建议自己google

不过这些都和本帖主题无关
作者
Author:
ilovelr    时间: 2022-6-22 18:48
我的5950X,在UBUNTU22.04下,参照https://www.vasp.at/wiki/index.p ... 3.X_on_Ubuntu_22.04编译的比用Intel oneapi编译的VASP快大概20%~30%,而且更省内存
作者
Author:
ShangChien    时间: 2022-6-23 10:17
ilovelr 发表于 2022-6-22 18:48
我的5950X,在UBUNTU22.04下,参照https://www.vasp.at/wiki/index.php/Personal_computer_installation#Bu ...

最新版vasp6.3.x,终于有官方的安装指引了,流下了羡慕又感动的泪水
作者
Author:
abin    时间: 2022-8-17 12:19
这里有下载可用的懒人版。
无需配置任何东西。

镜像下载
如有需要, 请自行下载.

自由分享, 无需解锁 https://pan.baidu.com/s/18Q1hcop9JvNVEra8NVCULg?pwd=m9jm
加密分享, 需解锁 https://pan.baidu.com/s/1r7PduYXqjn3kpS-ie0H8NQ?pwd=aknc
支持Intel和AMD处理器.
作者
Author:
wang5360848    时间: 2022-8-27 16:43
ShangChien 发表于 2022-6-21 09:17
具体原因我也不知道,可能是编译器问题,也可能是你输入设置问题。
以上报错产生的原因有很多,例如一个 ...

是,编译器有点问题,换了个就好了
作者
Author:
Sentinel    时间: 2022-10-18 13:48
感谢 参照您的帖子安装成功 只是那个csdn的帖子有点小改动 在那边给他反馈了
并且ubuntu2204应该是不适配intel2019,试了很久都不成功
作者
Author:
浮世千寻沫    时间: 2022-10-24 12:30
老师您好,我在编译完毕后遇到了计算时间对比较长的问题,已私信给您
作者
Author:
浮世千寻沫    时间: 2022-10-24 12:31
浮世千寻沫 发表于 2022-10-24 12:30
老师您好,我在编译完毕后遇到了计算时间对比较长的问题,已私信给您

系统是centos7.6
作者
Author:
wxlsr    时间: 2023-2-18 10:26
老师,最后一步
编译完成后使用AMD平台提升MKL性能的小技巧(在~/.bashrc中添加环境):
#AMD trick
export MKL_DEBUG_CPU_TYPE=5
export MKL_CBWR=AVX2
export I_MPI_PIN_DOMAIN=numa
复制代码
最后使用sob老师的测试任务包(Hg)中的IN-long作为INCAR进行测试(一共20个离子步),
16core不加tirck环境,32core不加tirck环境,16core添加tirck环境
我已经make all成功了,还能添加吗?
在~/.bashrc中 最后添加可以吗?
作者
Author:
wxlsr    时间: 2023-2-18 11:18
浮世千寻沫 发表于 2022-10-24 12:30
老师您好,我在编译完毕后遇到了计算时间对比较长的问题,已私信给您

你好,你的这个问题解决了吗?我的好像时间也比较长
作者
Author:
wxlsr    时间: 2023-2-18 16:57
浮世千寻沫 发表于 2022-10-24 12:30
老师您好,我在编译完毕后遇到了计算时间对比较长的问题,已私信给您

额,忘用16核了
Total CPU time used (sec):      154.116  还可以
作者
Author:
这个世纪的我    时间: 2025-11-13 21:30
请问为什么你测试的32核比16核用时长啊
作者
Author:
KazusaT    时间: 2025-11-14 05:43
这个世纪的我 发表于 2025-11-13 21:30
请问为什么你测试的32核比16核用时长啊

超线程




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3