目录

说明2

ls 文档章节2360阅读模式

### aocc 4.1的安装
从https://www.amd.com/en/developer/aocc.html 下载aocc4.1
wget https://download.amd.com/developer/eula/aocc/aocc-4-1/aocc-compiler-4.1.0.tar
然后依次运行
```shell
tar xvf aocc-compiler-4.1.0.tar
cd aocc-compiler-4.1.0
bash install.sh
source ../setenv_AOCC.sh
# 下面测试安装是否成功
which clang
clang -v
```
上面的setenv_AOCC.sh就是配置AOCC环境变量的脚本,可以根据需要把该脚本加入module file或者~/.bashrc中

### aocl 4.1的安装
去https://www.amd.com/en/developer/aocl.html 下载aocl-linux-aocc-4.1.0.tar.gz文件,
wget https://download.amd.com/developer/eula/aocl/aocl-4-1/aocl-linux-aocc-4.1.0.tar.gz
然后依次运行
```shell
tar xvf aocl-linux-aocc-4.1.0.tar.gz
cd aocl-linux-aocc-4.1.0/

./install.sh -t /public/software/aocl-linux-aocc-4.1.0
# 这里问你选LP64还是ILP64,这里输入1选LP64即可

可以用bash install.sh -t 设定自定义安装目录, 注意这里如果自定义了安装目录,后面写vasp的makefile.include的时候要用相应的调整,amd-libs.cfg是AOCL库的环境变量,该环境变量在后面运行vasp的时候需要加载,可以写入运行vasp的脚本文件或者module file或者~/.bashrc中。

### 使用aocc编译openmpi-4.1.6
去https://www.open-mpi.org/software/ompi/v4.1/ 下载openmpi-4.1.6.tar.bz2,
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz
然后依次运行
```shell
tar xvf openmpi-4.1.6.tar.gz
cd openmpi-4.1.6
./configure --prefix=/public/software/openmpi-4.1.6-aocc4.1 CC=clang CXX=clang++ FC=flang
make -j
make install
```
安装后记得加入环境变量
```
export PATH=/public/software/openmpi-4.1.6-aocc4.1/bin:$PATH
export LD_LIBRARY_PATH=/public/software/openmpi-4.1.6-aocc4.1/lib:$LD_LIBRARY_PATH
```
注意这里的路径和上面的安装路径一致
然后检查安装是否成功
```
mpif90 -v
```
会出现下面的信息
```
AMD clang version 16.0.3 (CLANG: AOCC_4.1.0-Build#270 2023_07_10)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/zc/amd/aocc-compiler-4.1.0/bin
```

### 使用aocc编译vasp.6.4.2
首先修改makefile.include文件,依次运行
```
cd vasp.6.4.2
cp arch/makefile.include.aocc_ompi_aocl ./makefile.include
```
得到makefile.include文件,然后其中需要修改的部分列出如下
```
FFLAGS = -w -fno-fortran-main -Mbackslash $(CPP_OPTIONS) -ffunc-args-alias
OFLAG = -O3
CFLAGS_LIB = -O3
FFLAGS_LIB = -O2
VASP_TARGET_CPU ?= -march=znver4
# BLAS (mandatory)
AMDBLIS_ROOT ?= /public/software/aocl-linux-aocc-4.1.0/4.1.0/aocc
BLAS = -L${AMDBLIS_ROOT}/lib -lblis
# LAPACK (mandatory)
AMDLIBFLAME_ROOT ?= /public/software/aocl-linux-aocc-4.1.0/4.1.0/aocc
LAPACK = -L${AMDLIBFLAME_ROOT}/lib -lflame
# scaLAPACK (mandatory)
AMDSCALAPACK_ROOT ?= /public/software/aocl-linux-aocc-4.1.0/4.1.0/aocc
SCALAPACK = -L${AMDSCALAPACK_ROOT}/lib -lscalapack
# FFTW (mandatory)
AMDFFTW_ROOT ?= /public/software/aocl-linux-aocc-4.1.0/4.1.0/aocc
LLIBS += -L$(AMDFFTW_ROOT)/lib -lfftw3
INCS += -I$(AMDFFTW_ROOT)/include
```
注意其中各种数学库的路径不要照抄这里的,根据aocl库的实际安装路径修改
O3 O2这些设置不一定是最优的,没有充分测试
如果你是9654就用-march=znver4
如果是7003系列的cpu就用-march=znver3
如果是7002系列的cpu就是-march=znver2
然后开始编译
```
make install
```
编译完成后在bin目录下得到vasp_gam, vasp_std, vasp_ncl三个文件,把他们加入环境变量即可。
可以简单测试一下安装是否成功
```
cd testsuite
make test
```
PS. 本方法编译的vasp速度比oneapi的快,9654X2跑一圈的TiO2的LOOP+耗时是265.6秒,和http://bbs.keinsci.com/thread-40077-1-1.html 这个帖子中的测试速度(268.9)相当

HTML5+CSS3 响应式设计,博客、杂志、图片、公司企业多种布局可选,集成SEO自定义功能,丰富的主题选项,众多实用小工具。