Skip to content

Commit 596f5df

Browse files
authored
Merge pull request #2591 from RajalakshmiSR/testhalf
Add test for shgemm
2 parents 5dd14e3 + 564b0d3 commit 596f5df

File tree

3 files changed

+34
-10
lines changed

3 files changed

+34
-10
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ test/SBLAT2.SUMM
7070
test/SBLAT3.SUMM
7171
test/ZBLAT2.SUMM
7272
test/ZBLAT3.SUMM
73+
test/SHBLAT3.SUMM
7374
test/cblat1
7475
test/cblat2
7576
test/cblat3
@@ -79,6 +80,7 @@ test/dblat3
7980
test/sblat1
8081
test/sblat2
8182
test/sblat3
83+
test/test_shgemm
8284
test/zblat1
8385
test/zblat2
8486
test/zblat3

test/Makefile

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,17 @@ endif
6464
endif
6565
endif
6666

67+
ifeq ($(BUILD_HALF),1)
68+
level3 : test_shgemm sblat3 dblat3 cblat3 zblat3
69+
else
6770
level3 : sblat3 dblat3 cblat3 zblat3
71+
endif
6872
ifndef CROSS
6973
rm -f ?BLAT3.SUMM
74+
ifeq ($(BUILD_HALF),1)
75+
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./test_shgemm > SHBLAT3.SUMM
76+
@$(GREP) -q FATAL SHBLAT3.SUMM && cat SHBLAT3.SUMM || exit 0
77+
endif
7078
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
7179
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
7280
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat3 < ./dblat3.dat
@@ -78,6 +86,10 @@ ifndef CROSS
7886
ifdef SMP
7987
rm -f ?BLAT3.SUMM
8088
ifeq ($(USE_OPENMP), 1)
89+
ifeq ($(BUILD_HALF),1)
90+
OMP_NUM_THREADS=2 ./test_shgemm > SHBLAT3.SUMM
91+
@$(GREP) -q FATAL SHBLAT3.SUMM && cat SHBLAT3.SUMM || exit 0
92+
endif
8193
OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
8294
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
8395
OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
@@ -87,6 +99,10 @@ ifeq ($(USE_OPENMP), 1)
8799
OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
88100
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
89101
else
102+
ifeq ($(BUILD_HALF),1)
103+
OPENBLAS_NUM_THREADS=2 ./test_shgemm > SHBLAT3.SUMM
104+
@$(GREP) -q FATAL SHBLAT3.SUMM && cat SHBLAT3.SUMM || exit 0
105+
endif
90106
OPENBLAS_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
91107
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
92108
OPENBLAS_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
@@ -165,6 +181,11 @@ zblat2 : zblat2.$(SUFFIX) ../$(LIBNAME)
165181
sblat3 : sblat3.$(SUFFIX) ../$(LIBNAME)
166182
$(FC) $(FLDFLAGS) -o sblat3 sblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
167183

184+
ifeq ($(BUILD_HALF),1)
185+
test_shgemm : compare_sgemm_shgemm.c ../$(LIBNAME)
186+
$(FC) $(FLDFLAGS) -o test_shgemm compare_sgemm_shgemm.c ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
187+
endif
188+
168189
dblat3 : dblat3.$(SUFFIX) ../$(LIBNAME)
169190
$(FC) $(FLDFLAGS) -o dblat3 dblat3.$(SUFFIX) ../$(LIBNAME) $(EXTRALIB) $(CEXTRALIB)
170191

@@ -187,7 +208,7 @@ clean:
187208
@rm -f *.$(SUFFIX) *.$(PSUFFIX) gmon.$(SUFFIX)ut *.SUMM *.cxml *.exe *.pdb *.dwf \
188209
sblat1 dblat1 cblat1 zblat1 \
189210
sblat2 dblat2 cblat2 zblat2 \
190-
sblat3 dblat3 cblat3 zblat3 \
211+
test_shgemm sblat3 dblat3 cblat3 zblat3 \
191212
sblat1p dblat1p cblat1p zblat1p \
192213
sblat2p dblat2p cblat2p zblat2p \
193214
sblat3p dblat3p cblat3p zblat3p \

test/compare_sgemm_shgemm.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2626
*****************************************************************************/
2727
#include <stdio.h>
2828
#include <stdint.h>
29-
#include "common.h"
29+
#include "../common.h"
3030
#define SGEMM BLASFUNC(sgemm)
3131
#define SHGEMM BLASFUNC(shgemm)
3232
typedef union
@@ -52,7 +52,7 @@ main (int argc, char *argv[])
5252
int m, n, k;
5353
int i, j, l;
5454
int ret = 0;
55-
int loop = 20;
55+
int loop = 100;
5656
char transA = 'N', transB = 'N';
5757
float alpha = 1.0, beta = 0.0;
5858
char transa = 'N';
@@ -71,8 +71,8 @@ main (int argc, char *argv[])
7171
{
7272
for (int i = 0; i < m; i++)
7373
{
74-
A[j * k + i] = j * 9.0;
75-
B[j * k + i] = i * 2.0;
74+
A[j * k + i] = ((FLOAT) rand() / (FLOAT) RAND_MAX) + 0.5;
75+
B[j * k + i] = ((FLOAT) rand() / (FLOAT) RAND_MAX) + 0.5;
7676
C[j * k + i] = 0;
7777
AA[j * k + i].v = *(uint32_t *) & A[j * k + i] >> 16;
7878
BB[j * k + i].v = *(uint32_t *) & B[j * k + i] >> 16;
@@ -85,11 +85,12 @@ main (int argc, char *argv[])
8585
&m, BB, &k, &beta, CC, &m);
8686

8787
for (i = 0; i < n; i++)
88-
for (j = 0; j < m; j++)
89-
for (l = 0; l < k; l++)
90-
if (CC[i * m + j] != C[i * m + j])
91-
ret++;
88+
for (j = 0; j < m; j++)
89+
for (l = 0; l < k; l++)
90+
if (fabs(CC[i * m + j]-C[i * m + j]) > 1.0)
91+
ret++;
9292
}
93-
fprintf (stderr, "Return code: %d\n", ret);
93+
if (ret != 0)
94+
fprintf (stderr, "FATAL ERROR SHGEMM - Return code: %d\n", ret);
9495
return ret;
9596
}

0 commit comments

Comments
 (0)