编译构建: 添加 sunway 异构支持
#
准备额外的源码为了支持在神威上运行 MISA-MD,在开始构建之前,除了 CPU 版本所需的依赖包外,还需要获取几个额外的源码包:
- misa-md-sunway: https://git.hpcer.dev/HPCer/MISA-MD/MISA-MD-sunway ,MISA-MD 核心计算模块的在神威平台上的实现。
目录结构如下:
workspace |-- MISA-MD # MISA MD source for CPU |-- misa-md-sunway
#
构建前的准备除了构建 CPU 版本所需的环境和工具外,构建支持神威从核的 MISA-MD 还需要以下环境:
- 要求编译器支持 C++11。在太湖之光上,可以用 sw5gcc/sw5g++ (基于gcc 5.3 开发)或者 mpiswgcc/mpiswg++。
tip
太湖之光上设置基于gcc 5.3 的编译器 sw5gcc/sw5g++ 的命令为:
source /usr/sw-mpp/swcc/swgcc530-tools/setenv-release
#
构建依赖包该步骤和 CPU 版本中构建依赖包的方式一样,直接使用 pkg install
命令即可完成包括 hip-potential
在内的依赖包的构建和安装。
export CC=/usr/sw-mpp/mpi2/mpiswgcc/bin/mpiswgccexport CXX=/usr/sw-mpp/mpi2/mpiswgcc/bin/mpiswg++pkg fetchpkg install --sh
#
构建支持 sunway 从核的 MISA-MD进入 MISA-MD
目录,然后执行以下命令以构建支持 GPU/DCU 硬件的 MISA-MD。
# in MISA-MD directorycmake -B./cmake-build-sunway/ -S./ \ -DCMAKE_BUILD_TYPE=Release \ -DMD_SUNWAY_ARCH_ENABLE_FLAG=ON \ -DMD_SUNWAY_ARCH_SRC_PATH=../misa-md-sunway \ -DCMAKE_CXX_FLAGS="-std=c++11" \ -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain/sunway-taihulight/toolchain-mpi.cmake"cmake --build ./cmake-build-sunway/ -j 4
其中在 cmake 配置过程中,MD_SUNWAY_ARCH_ENABLE_FLAG
参数表示启用 sunway 环境的支持, MD_SUNWAY_ARCH_SRC_PATH
参数指定了 misa-md-sunway
包的源码目录。
note
在早前的版本中,这两个参数可能为 SUNWAY_ARCH_ENABLE_FLAG
与 SUNWAY_ARCH_SRC_PATH
.
此外,我们还指定了在 CMAKE_TOOLCHAIN_FILE
中指定了工具链,如编译器路径、链接参数等。
tip
如果你需要生成优化版本的可执行文件,可以在 cmake 配置命令中加上 -DCMAKE_BUILD_TYPE=Release
选项,
这样 cmake 在调用编译器进行编译和链接时就会使用优化选项(如 -O3
选项)。
编译完成后,即可在 MISA-MD 的 cmake-build-sunway/bin
目录找到支持在 sunway 从核加速硬件上运行的 msiamd 可执行文件。