forked from wu-kan/HPL-AI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
executable file
·156 lines (140 loc) · 4.26 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/bin/bash
##############################################################
#
# HPL-AI Mixed-Precision Benchmark v2.3a -- March 14, 2021
#
##############################################################
#
# Check out <https://wu-kan.cn/_posts/2021-03-14-HPL-AI/> for
# the full document and the latest information.
#
##############################################################
#
# A quick start to build and run a few tests: ./README
# First the following softwares are required on your system:
# C&C++ compiler, autoconf, autoconf-archive, automake, mpi,
# blas, blaspp
#
# You can easily install and load the requirements via spack
# <https://github.com/spack/spack/releases/tag/v0.16.1>.
#
# I just tested with the followings, while other versions or
# libraries might work as well:
spack unload -a
spack load gcc@7.5.0
spack load autoconf@2.69%gcc@7.5.0
spack load autoconf-archive@2019.01.06%gcc@7.5.0
spack load automake@1.16.2%gcc@7.5.0
spack load openmpi@3.1.6%gcc@7.5.0~cxx~cxx_exceptions
spack load blaspp@2020.10.02%gcc@7.5.0+openmp~cuda \
^openblas@0.3.5%gcc@7.5.0 threads=openmp
# Then boostrap the configuration files by typing:
autoreconf -ivf
# The user is given the opportunity to compile the software
# with some specific compile options:
#
# CPPFLAGS=" -DHPLAI_T_AFLOAT=double "
#
# CPPFLAGS=" -DHPLAI_DEVICE_BLASPP_GEMM "
#
# CPPFLAGS=" -DHPLAI_DEVICE_BLASPP_TRSM "
#
# CPPFLAGS=" -DHPLAI_GEN_BLASPP_GEMM "
#
# CPPFLAGS=" -DHPLAI_GEN_BLASPP_TRSM "
#
# CPPFLAGS=" -DHPLAI_GEN_BLASPP_TRSV "
#
# CPPFLAGS=" -DHPLAI_PMAT_REGEN "
#
# CPPFLAGS=" -DHPL_COPY_L "
#
# CPPFLAGS=" -DHPL_CALL_CBLAS "
#
# CPPFLAGS=" -DHPL_CALL_VSIPL "
# (deperated)
#
# CPPFLAGS=" -DHPL_DETAILED_TIMING "
# (deperated)
#
# To configure the build and prepare for compilation run:
./configure
# Note: to use device blaspp routines, you may need to enable
# CUDA support of blaspp:
#
# spack load blaspp@2020.10.02%gcc@7.5.0+openmp+cuda
#
# and then:
#
# ./configure \
# LIBS=" -lcudart -lcublas " \
# CPPFLAGS=" -DBLASPP_WITH_CUBLAS \
# -DHPLAI_DEVICE_BLASPP_GEMM \
# -DHPLAI_DEVICE_BLASPP_TRSM "
# Then compile:
make -j
# The configuration file must be called HPL.dat.
#
# You can copy the configuration file from the original HPL,
# or create a configuration file anew.
#
# Most of the performance parameters can be tuned.
if true; then
cp testing/ptest/HPL.dat HPL.dat
else
cat >HPL.dat <<EOF
HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out output file name (if any)
6 device out (6=stdout,7=stderr,file)
1 # of problems sizes (N)
16384 143360 Ns
1 # of NBs
384 192 256 NBs
1 PMAP process mapping (0=Row-,1=Column-major)
1 # of process grids (P x Q)
2 1 4 Ps
2 4 1 Qs
16.0 threshold
1 # of panel fact
2 1 0 PFACTs (0=left, 1=Crout, 2=Right)
1 # of recursive stopping criterium
2 NBMINs (>= 1)
1 # of panels in recursion
2 NDIVs
1 # of recursive panel fact.
2 1 0 RFACTs (0=left, 1=Crout, 2=Right)
1 # of broadcast
0 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1 # of lookahead depth
0 DEPTHs (>=0)
0 SWAP (0=bin-exch,1=long,2=mix)
1 swapping threshold
1 L1 in (0=transposed,1=no-transposed) form
1 U in (0=transposed,1=no-transposed) form
0 Equilibration (0=no,1=yes)
8 memory alignment in double (> 0)
EOF
fi
# Finally run and compare with the original hpl-2.3:
mpiexec -n 4 -x OMP_NUM_THREADS=2 testing/xhpl
mpiexec -n 4 -x OMP_NUM_THREADS=2 testing/xhplai
# If you download HPL-AI via git, you can clean the builds by:
git clean -d -f -q -x
##############################################################
#
# The newest version of HPL-AI is available at
# <https://github.com/wu-kan/HPL-AI/releases>
#
##############################################################
#
# Bugs are tracked at
# <https://github.com/wu-kan/HPL-AI/issues>
#
##############################################################
#
# The souce code of HPL-AI is licensed under `COPYING`.
#
# The souce code of hpl-2.3 is licensed under `COPYRIGHT`.
#
##############################################################