给 linux 机子跑跑 HPL 测试
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