计算化学公社

标题: AMD9654使用toolchain方法编译CP2K后提示不支持avx512 [打印本页]

作者
Author:
ggshining    时间: 2024-6-13 15:06
标题: AMD9654使用toolchain方法编译CP2K后提示不支持avx512
硬件:双路AMD EPYC 9654
系统:Rocky Linux release 9.3
软件版本:gcc 11.4;cmake 3.26.5;openmpi 4.1.1
按照社长CP2K第一性原理程序在CentOS中的简易安装方法帖子中使用toolchain工具编译CP2K-2024.1(--with-sirius=no --with-openmpi=system --with-plumed=install --with-intel=no --with-cmake=system),编译过程都顺利,运行任务也没报错,但是提示当前编译的版本不支持AVX512指令集:
  1. *** HINT in environment.F:920 :: The compiler target flags (x86_sse4)     ***
  2. *** used to build this binary cannot exploit all extensions of this CPU   ***
  3. *** model (x86_avx512). Consider compiler target flags as part of FCFLAGS ***
  4. *** and CFLAGS (ARCH file).                                               ***
复制代码
请教大家,如何编译才能启用avx512呢?是否跟gcc版本有关系呢?
作者
Author:
喝杯热水    时间: 2024-6-13 18:15
OpenBLAS没有为 EPYC 9004 优化过。
作者
Author:
ggshining    时间: 2024-6-14 09:15
喝杯热水 发表于 2024-6-13 18:15
OpenBLAS没有为 EPYC 9004 优化过。

那是不是就没办法了?
作者
Author:
喝杯热水    时间: 2024-6-14 10:10
ggshining 发表于 2024-6-14 09:15
那是不是就没办法了?

你可以尝试把数学库换成AMD的AOCL
作者
Author:
snljty2    时间: 2024-6-14 10:15
ggshining 发表于 2024-6-14 09:15
那是不是就没办法了?

数学库用Intel OneAPI MKL试试,不要加--with-intel=no。或者你们是有商业用途限制,不能用Intel OneAPI嘛?用AOCL试试也行。
作者
Author:
喝杯热水    时间: 2024-6-14 15:37
snljty2 发表于 2024-6-14 10:15
数学库用Intel OneAPI MKL试试,不要加--with-intel=no。或者你们是有商业用途限制,不能用Intel OneAPI ...

oneAPI编译CP2K我记得是有问题的。CP2K在官网上明确写了不支持oneAPI
https://www.cp2k.org/dev:compiler_support
同时楼主用的是EPYC,如果想用oneAPI编译还需要搞点特殊trick才能激活AVX2,更别说AVX512了。
作者
Author:
ggshining    时间: 2024-6-14 16:44
喝杯热水 发表于 2024-6-14 10:10
你可以尝试把数学库换成AMD的AOCL

看了toolchain里的help,用AMD的数学库只能--with-acml,acml应该是AMD以前的数学库名称,toolchain没有给aocl的选项,装了aocl用--with-acml也识别不出来,google上找了半天也没找到怎么能用上aocl的库,有成功的先例吗
作者
Author:
highlight    时间: 2024-6-14 16:54
直接指定试试
--target-cpu              Compile for the specified target CPU (e.g. haswell or generic), i.e.
                          do not optimize for the actual host system which is the default (native)

作者
Author:
喝杯热水    时间: 2024-6-15 15:16
本帖最后由 喝杯热水 于 2024-6-15 15:17 编辑
ggshining 发表于 2024-6-14 16:44
看了toolchain里的help,用AMD的数学库只能--with-acml,acml应该是AMD以前的数学库名称,toolchain没有 ...

在amd官网,给了使用spack基于AOCL编译CP2K的模式,你可以参考一下?
https://www.amd.com/zh-cn/develo ... lications-cp2k.html
作者
Author:
喝杯热水    时间: 2024-6-15 15:26
(当然如果你只是想消除这个warning的话,你把那几个makefile里面加一句 -march=native -mtune=native,就不会出现这个warning,当然,也不会有什么性能增益。
作者
Author:
gog    时间: 2024-6-16 09:04
喝杯热水 发表于 2024-6-15 15:16
在amd官网,给了使用spack基于AOCL编译CP2K的模式,你可以参考一下?
https://www.amd.com/zh-cn/develo ...

spack经常断网掉线。另外,很多组件不支持spack。toolchain方法,确实好,兼容 intel CPU,非常ok。AMD的,很少有人能懂。
作者
Author:
ggshining    时间: 2024-6-16 22:04
我试过oneapi2023和intel2018的MKL都成功编译了,感觉比opnBlas快点,但是这个warning还在。




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