第二届先导杯-在曙光超算平台编译cp2k(二)

赛题要求编译AMD GPU版本的cp2k版本,试了多种方法,实在编译不出来。我放弃了,这里把我之前编译的经验分享给需要的人。
我已经成功编译了带DBCSR的版本,但加速效果不明显;
也编译了AMD GPU的版本,但是运行报段错误,且一直无法解决;
当前想到的一个办法是,在grid里面直接make一个带HIP的子程序,然后make总的程序。

如下图所示,明明编译的时候没有报错,并成功生成了cp2k.psmp,但是运行报错。
在这里插入图片描述
在这里插入图片描述

参考文章:第二届先导杯-在曙光超算平台编译cp2k(一)

可以关注这个:编译HIP版本的最新进展

编译DBCSR

使用rocm3.9.1(我用的版本,低于它的版本我没有编译成功)
先使用toolchain编译cpu版本成功,然后运行下面的指令。
注意:需要根据自己的路径修改


//***********************编译dbcsr库     start*******************
cd ~/cp2ksource/exts/dbcsr/build
//第三步:设置环境变量(CXX compiler ABI info - failed 设置环境变量)
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/public/home/godeye2021/cp2ksource/tools/toolchain/install/libxsmm-1.16.1/lib"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/public/home/godeye2021/cp2ksource/tools/toolchain/install/scalapack-2.1.0/lib"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/public/software/mpi/hpcx/v2.4.1/intel-2017.5.239/lib"
export ROCM_PATH=/public/software/compiler/rocm/rocm-3.9.1
export HIP_PATH=${ROCM_PATH/hip}
export LLVM_PATH=${ROCM_PATH}/llvm
export HIP_DEVICE_LIB_PATH=${ROCM_PATH}/amdgcn/bitcode
export FYPP_EXECUTABLE=/public/home/godeye2021/pypp/fypp-3.1/bin/fypp

第三步:去除加载模块anaconda3/5.2.0
module purge
module add compiler/devtoolset/7.3.1 mpi/hpcx/2.4.1/gcc-7.3.1 compiler/rocm/3.9.1 mathlib/fftw/3.3.8/single/gnu compiler/intel/2017.5.239

第四步:更改fypp的路径
cmake文件夹下fypp-sources.cmake的第5行fypp改为/public/home/godeye2021/pypp/fypp-3.1/bin/fypp

第五步:编译文件
/public/home/godeye2021/cmake/bin/cmake .. -DUSE_MPI=ON -DCMAKE_Fortran_COMPILER=mpifort -DCMAKE_CXX_COMPILER=hipcc -DUSE_OPENMP=OFF -DUSE_SMM=libxsmm -DUSE_ACCEL=hip -DWITH_CUDA_PROFILING=OFF -DWITH_C_API=ON -DWITH_EXAMPLES=ON -DWITH_GPU=Mi50 -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DTEST_MPI_RANKS=1 -DTEST_OMP_THREADS=1 -DCMAKE_INSTALL_PREFIX=/public/home/godeye2021/cp2ksource/exts/dbcsr-install

第六步:编译文件
make

第7步:安装
//修改exts/dbcsr/build/cmake_install.cmake
将第5行CMAKE_INSTALL_PREFIX的值设为~/cp2kfile2/cp2k-8.1/exts/dbcsr-install
make install
//***********************编译dbcsr库     end*******************

编译GPU版本

先下载develop版本(git:b5a86d8)
可以官方下载,也可以联系我下载。因为是编译后的,所以文件有点大,2.4G左右。

编译cp2k-develop最新

//第一步:进入计算节点
salloc -N 1 -n 32 --gres=dcu:4 -p PilotCup
ssh a06r4n04(类似的名称)
//第二步:进入toolchain,准备编译第三方库
cd ~/cp2kdevelop/tools/toolchain
//第三步:加载模块,准备编译环境
module purge
module add compiler/devtoolset/7.3.1 mpi/hpcx/2.4.1/gcc-7.3.1 compiler/rocm/4.0.1 apps/anaconda3/5.2.0
//第四步:编译第三方库,生成HIP版本的分支arch
./install_cp2k_toolchain.sh --with-cmake=~/cmake --with-libint=install --with-libxc=install --with-scalapack=install --with-libxsmm=install --with-fftw=install --math-mode=mkl --with-mkl=/public/software/compiler/intel/intel-compiler-2017.5.239/mkl --enable-hip=yes --gpu-ver=Mi50 --with-elpa=no
//第五步:拷贝编译安装后的第三方库到cp2k目录下的arch文件夹内
cp /public/home/godeye2021/cp2kdevelop/tools/toolchain/install/arch/* /public/home/godeye2021/cp2kdevelop/arch/
source /public/home/godeye2021/cp2kdevelop/tools/toolchain/install/setup
//第六步:到cp2k主目录,开始编译hip版本
cd ~/cp2kdevelop
make -j 32 ARCH=local_hip VERSION="psmp"
//第七步:测试生成的cp2k程序
~/cp2kdevelop/exe/local_hip/cp2k.psmp -h
这一步大概率会报错:段错误。剩下的靠你自己的了,可以关注错误#1583
https://github.com/cp2k/cp2k/issues/1583

//一个可能的思路,进入src/grid路径下,单独make,根据#1583错误进行修改grid里面的makefile
cd ~/cp2kdevelop/src/grid/
make

但我运行下来,报了两个错误,不想解决了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kissgoodbye2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值