给 linux 机子跑跑 HPL 测试

49

Tips: 本文章以 Ubuntu 22.04 为例

编译工具安装

sudo apt install build-essential -y
sudo apt install gfortran -y
sudo apt install cmake -y
# 注:如果跳出紫色窗口直接回车就行

安装 BLAS

进入你喜欢的目录 e.g. cd ~ && mkdir asc && cd asc
替换 {ROOT_DIR} 为你自己的目录 在 {ROOT_DIR}mkdir opt

# 进入 {ROOT_DIR}
wget http://www.netlib.org/blas/blas-3.12.0.tgz
tar -xvf blas-3.12.0.tgz
cd BLAS-3.12.0
mkdir build
cmake -DCMAKE_INSTALL_PREFIX:PATH={ROOT_DIR}/opt/blas -S . -B ./build
make -j 4
make install

安装 CBLAS

# 进入 {ROOT_DIR}
wget http://www.netlib.org/blas/blas-3.12.0.tgz
tar -xvf blas-3.12.0.tgz
cd CBLAS
rm -rf Makefile.in
ln -s Makefile.LINUX Makefile.in
vim Makefile.LINUX

把 blas 的目录修改下

BLLIB = {ROOT_DIR}/opt/blas/lib/libblas.a

当然编译时大概是会报错的,因为 fortran 编译器版本比较新
可以按照 https://github.com/Reference-LAPACK/lapack/commit/7fb63b1cd386b099d7da6eeaafc3e7dce055a7d0 修改
这样虽然没法通过测试 但是可以正常生成产物

make -j 4
mv cblas_LINUX.a libcblas.a
cp -R lib {ROOT_DIR}/opt/cblas/

安装 BLAS

# 进入 {ROOT_DIR}
git clone https://github.com/OpenMathLib/OpenBLAS.git
cd OpenBLAS
mkdir build
cmake -S . -B ./build -DCMAKE_INSTALL_PREFIX:PATH={ROOT_DIR}/opt/openblas
cd build && make -j 4
make install

安装 MPICH

# 进入 {ROOT_DIR}
wget https://www.mpich.org/static/downloads/4.2.3/mpich-4.2.3.tar.gz
gunzip -c mpich-4.2.3.tar.gz | tar xf -
cd mpich-4.2.3 && mkdir build && cd build
../configure -prefix={ROOT_DIR}/opt/mpich |& tee c.txt
make -j 4 2>&1 | tee m.txt
make install |& tee mi.txt

安装 HPL

# 进入 {ROOT_DIR}
wget https://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz
gunzip -c hpl-2.3.tar.gz | tar xf -
cd hpl-2.3
cp setup/Make.Linux_PII_CBLAS Make.Linux_PII_CBLAS
vim Make.Linux_PII_CBLAS

修改

比如说我的 {ROOT_DIR}/home/vagrant/asc$(HOME)对应/home/vagrant

TOPdir       = $(HOME)/asc/hpl-2.3
MPdir        = $(HOME)/asc/opt/mpich
LAdir        = $(HOME)/asc/opt
LAlib        = $(LAdir)/cblas/lib/libcblas.a $(LAdir)/blas/libblas.a
LINKER       = /usr/bin/gfortran
MPlib        = $(MPdir)/lib/libmpi.a
cd bin/Linux_PII_CBLAS
export PATH=$PATH:{ROOT_DIR}/opt/mpich/bin
mpirun -np 4 ./xhpl