计算化学公社

标题: 求助在VASP编译时出现SSE is disabled错误 [打印本页]

作者
Author:
Sureviver    时间: 2020-4-29 07:44
标题: 求助在VASP编译时出现SSE is disabled错误
在新的Ubuntu20.0系统下编译的,Intel parallel xe 2020编译器,处理器是 AMD 3600
在编译过程中提示Function return parameter requires SSE register while SSE is disabled.
mpiifort -free -names lowercase -assume byterecl -w -O2 -xhost -I/opt/intel/compilers_and_libraries_2020.1.217/linux/mkl/include/fftw -c varpro.f90
varpro.F(493): catastrophic error: Function return parameter requires SSE register while SSE is disabled.
compilation aborted for varpro.f90 (code 1)
make[2]: *** [makefile:169: varpro.o] Error 1
make[2]: Leaving directory '/home/wq/vasp.5.4.4/build/std'
cp: cannot stat 'vasp': No such file or directory
make[1]: *** [makefile:142: all] Error 1
make[1]: Leaving directory '/home/wq/vasp.5.4.4/build/std'
make: *** [makefile:10: std] Error 2
我的理解就是在编译varpro.f90这个文件的时候,需要用到SSE register,但SSE被禁用了。
我的是AMD处理器,是支持SSE指令集,安装VASP是按照sob老师最简单安装方法安装的,我是不是需要调整一些参数,求大佬帮帮忙!
最关键的问题是,我如果不对makefile include文件进行修改,完全默认,不加-xhost的话,是可以成功安装的,但总觉得没达到计算机运算最佳效果,求帮忙!


作者
Author:
wypkdhd    时间: 2020-4-29 09:00
AMD目前不需要-xhost,-xhost是针对avx512的。想要达到最佳计算效果,可以尝试O3,但是O3不稳定。
作者
Author:
sobereva    时间: 2020-4-29 09:59
xhost绝对不是什么“针对avx512的”,这是对这个参数的明显错误理解。看ifort手册便知其含义是:如果当前机子的CPU是Intel的,自动把-x设为本机支持的最好的指令集的情况,而且编译出的程序将没法用于非Intel CPU。
对于AMD的情况,自己用-m手动指定当前CPU支持的最好的指令集就完了。比如写-mAVX就代表用ifort编译出可以用于所有支持AVX指令集的CPU(不限于Intel的)的可执行文件。至少对于ifort 19,-m最高只能支持到AVX。
更多信息看ifort手册Code Generation Options部分。


用-O2、-O3和让编译器利用什么指令集这完全是两码事。-O2的时候编译器就已经利用SIMD来产生代码了(即默认用了-vec设置。至于具体用什么SIMD取决于-x或-m的设置),-O3只不过在-O2基础上再做一些额外的让代码加速运行的优化而已。


作者
Author:
Sureviver    时间: 2020-4-29 10:18
sobereva 发表于 2020-4-29 09:59
xhost绝对不是什么“针对avx512的”,这是对这个参数的明显错误理解。看ifort手册便知其含义是:如果当前机 ...

谢谢老师指点!
作者
Author:
neocc    时间: 2021-6-13 22:32
请问sob老师,直接复制arch/makefile.include.linux_intel文件到vasp目录下,没有做任何修改。
为了安装VTST插件,只修改了src/main.F和.objects文件。
为什么运行make命令,依然会有同楼主一样的报错?
  1. minimax_functions1D.F(46): catastrophic error: Function return parameter requires SSE register while SSE is disabled.
  2. compilation aborted for minimax_functions1D.f90 (code 1)
  3. make[2]: *** [makefile:169: minimax_functions1D.o] Error 1
复制代码


PS:
CPU:AMD EPYC 7K62
已装intel oneapi
作者
Author:
abin    时间: 2021-6-15 08:23
neocc 发表于 2021-6-13 22:32
请问sob老师,直接复制arch/makefile.include.linux_intel文件到vasp目录下,没有做任何修改。
为了安装VT ...

AMD处理器平台,
应该使用GNU ARCH文件,并作相应修改。
更应该使用AOCC工具链。

具体搜索 AMD AOCC。
作者
Author:
Marineking    时间: 2021-11-27 20:48
请问最后问题解决了吗?
作者
Author:
Sureviver    时间: 2022-1-14 11:03
Marineking 发表于 2021-11-27 20:48
请问最后问题解决了吗?

最后在makefile里制定了最高可以支持的编译器就好了,见sob老师的回复
作者
Author:
tianmafei    时间: 2023-8-19 08:57
sobereva 发表于 2020-4-29 09:59
xhost绝对不是什么“针对avx512的”,这是对这个参数的明显错误理解。看ifort手册便知其含义是:如果当前机 ...

sob老师好!弱弱地问一句,您说的-mAVX,是加到哪里?我是小白,请见谅!
作者
Author:
sobereva    时间: 2023-8-19 09:04
tianmafei 发表于 2023-8-19 08:57
sob老师好!弱弱地问一句,您说的-mAVX,是加到哪里?我是小白,请见谅!

VASP的最简单的安装方法(含视频演示)
http://sobereva.com/455http://bbs.keinsci.com/thread-11812-1-1.html
解压VASP包,得到vasp.5.4.4目录。进入此目录,把arch/makefile.include.linux_intel拷到上一级目录下改名为makefile.include,里面的配置专门适合Intel编译器。打开此文件,把其中的OFLAG参数里加入-xhost,这样编译器会使得编译出的程序能够利用当前机子CPU能支持的最高档次的指令集以加速计算,也因此就没必要手动添加其它一些VASP编译教程里诸如-xAVX、-mSSE4.2之类的选项了。


作者
Author:
乐平    时间: 2023-8-19 10:56
tianmafei 发表于 2023-8-19 08:57
sob老师好!弱弱地问一句,您说的-mAVX,是加到哪里?我是小白,请见谅!

你的 CPU 是 AMD 的吗? 如果不是,就不要看这个帖子

如果是 AMD 的 CPU,请看 VASP wiki 官网
https://www.vasp.at/wiki/index.php/Installing_VASP.6.X.X

或者看 http://bbs.keinsci.com/thread-30264-1-1.html




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