HPL: A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers
安装HPL for GPU (hpl-2.0_FERMI_v08.tar) 之前,机器里要预装编译器,并行环境MPI、基本线性代数子方程(BLAS)或矢量图形信号处理器(VSIPL)两者之一。
我装的是BLAS,也装了CBLAS。不记得是不是必须,我还装了一个LAPACK(Linear Algebra PACKage,http://www.netlib.org/lapack/)。
1. BLAS
比较简单,make即可
2. CLBAS
make文件中有个BLLIB的路径指示为../../librefblas.a,修改为BLAS的blas.LINUX.a实际位置
3. LAPCK
make文件中指定对BLAS的位置就行了。成功后大概有个下面的结果。
--> LAPACK TESTING SUMMARY <--
Processing LAPACK Testing output found in the TESTING direcory
SUMMARY nb test run numerical error other error
================ =========== ================= ================
REAL 1064911 39 (0.004%) 0 (0.000%)
DOUBLE PRECISION 1052315 203 (0.019%) 0 (0.000%)
COMPLEX 508588 2 (0.000%) 0 (0.000%)
COMPLEX16 530862 28 (0.005%) 0 (0.000%)
--> ALL PRECISIONS 3156676 272 (0.009%) 0 (0.000%)
4. HPL for GPU
关键改对make中这两个文件的位置改对,其他的保持默认。
LAdir: BLAS 库或VSIPL 库所在的目录
LAinc、LAlib:BLAS 库或VSIPL 库头文件、库文件
编译完成后,生成可执行文件xhpl(在hpl/<arch>/bin 目录下)。我的<arch>用的是默认的CUDA_pinned
运行时好几次说有些.so, .a 文件找不到等等,这些都可以在同目录下的path文件指定清楚,记住source使其生效。
运行mpirun -np 1 xi03 成功。
如果出现“Error allocating scratch space 2048.00 MB”之类的问题,在对应的src/cuda中找到源文件(比如cuda_dgemm.c),进行相应修改,调小一些即可。