Skip to content

Commit 0ce794f

Browse files
authored
Enable GEMM3M tests on supported platforms
1 parent cb8131c commit 0ce794f

2 files changed

Lines changed: 79 additions & 3 deletions

File tree

ctest/CMakeLists.txt

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ if (CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
1010
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-tree-vectorize")
1111
endif()
1212

13+
set (USE_GEMM3M 0)
14+
if (${ARCH} MATCHES x86|x86_64|ia64|mips)
15+
set(USE_GEMM3M 1)
16+
endif ()
17+
1318
if(WIN32)
1419
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_cblas_helper.ps1
1520
"$ErrorActionPreference = \"Stop\"\n"
@@ -88,6 +93,17 @@ if (NOT NOFORTRAN)
8893
auxiliary.c
8994
c_xerbla.c
9095
constant.c)
96+
if (USE_GEMM3M)
97+
if ((${float_char} STREQUAL "c") OR (${float_char} STREQUAL "z"))
98+
add_executable(x${float_char}cblat3_3m
99+
c_${float_char}blat3_3m.f
100+
c_${float_char}blas3_3m.c
101+
c_${float_char}3chke_3m.c
102+
auxiliary.c
103+
c_xerbla.c
104+
constant.c)
105+
endif()
106+
endif()
91107
else()
92108
add_executable(x${float_char}cblat3
93109
c_${float_char}blat3c.c
@@ -96,6 +112,17 @@ else()
96112
auxiliary.c
97113
c_xerbla.c
98114
constant.c)
115+
if (USE_GEMM3M)
116+
if ((${float_char} STREQUAL "c") OR (${float_char} STREQUAL "z"))
117+
add_executable(x${float_char}cblat3_3m
118+
c_${float_char}blat3c_3m.c
119+
c_${float_char}blas3_3m.c
120+
c_${float_char}3chke_3m.c
121+
auxiliary.c
122+
c_xerbla.c
123+
constant.c)
124+
endif()
125+
endif()
99126
endif()
100127
target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME})
101128
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
@@ -105,7 +132,24 @@ endif()
105132
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX")
106133
target_link_libraries(x${float_char}cblat3 m)
107134
endif()
135+
if (USE_GEMM3M)
136+
if ((${float_char} STREQUAL "c") OR (${float_char} STREQUAL "z"))
137+
target_link_libraries(x${float_char}cblat3_3m ${OpenBLAS_LIBNAME})
138+
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
139+
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
140+
target_link_libraries(x${float_char}cblat3 omp pthread)
141+
endif()
142+
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX")
143+
target_link_libraries(x${float_char}cblat3_3m m)
144+
endif()
145+
endif()
146+
endif()
108147
add_test(NAME "x${float_char}cblat3"
109148
COMMAND ${test_helper} $<TARGET_FILE:x${float_char}cblat3> "${PROJECT_SOURCE_DIR}/ctest/${float_char}in3")
110-
149+
if (USE_GEMM3M)
150+
if ((${float_char} STREQUAL "c") OR (${float_char} STREQUAL "z"))
151+
add_test(NAME "x${float_char}cblat3_3m"
152+
COMMAND ${test_helper} $<TARGET_FILE:x${float_char}cblat3_3m> "${PROJECT_SOURCE_DIR}/ctest/${float_char}in3_3m")
153+
endif()
154+
endif()
111155
endforeach()

ctest/Makefile

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@
55
TOPDIR = ..
66
include $(TOPDIR)/Makefile.system
77

8+
SUPPORT_GEMM3M = 0
9+
10+
ifeq ($(ARCH), x86)
11+
SUPPORT_GEMM3M = 1
12+
endif
13+
14+
ifeq ($(ARCH), x86_64)
15+
SUPPORT_GEMM3M = 1
16+
endif
17+
18+
ifeq ($(ARCH), ia64)
19+
SUPPORT_GEMM3M = 1
20+
endif
21+
22+
ifeq ($(ARCH), MIPS)
23+
SUPPORT_GEMM3M = 1
24+
endif
25+
826
override CFLAGS += -DADD$(BU) -DCBLAS
927
ifeq ($(F_COMPILER),GFORTRAN)
1028
override FFLAGS += -fno-tree-vectorize
@@ -43,7 +61,7 @@ ztestl3o = c_zblas3.o c_z3chke.o auxiliary.o c_xerbla.o constant.o
4361
ztestl3o_3m = c_zblas3_3m.o c_z3chke_3m.o auxiliary.o c_xerbla.o constant.o
4462

4563

46-
all :: all1 all2 all3
64+
all :: all1 all2 all3 all3_3m
4765

4866
ifeq ($(BUILD_SINGLE),1)
4967
all1targets += xscblat1
@@ -182,8 +200,9 @@ endif
182200
endif
183201

184202
all3_3m: xzcblat3_3m xccblat3_3m
203+
ifeq ($(SUPPORT_GEMM3M),1)
185204
ifeq ($(USE_OPENMP), 1)
186-
ifeq ($(BUILD_SINGLE),1)
205+
ifeq ($(BUILD_COMPLEX),1)
187206
OMP_NUM_THREADS=2 ./xccblat3_3m < cin3_3m
188207
endif
189208
ifeq ($(BUILD_COMPLEX16),1)
@@ -197,6 +216,7 @@ ifeq ($(BUILD_COMPLEX16),1)
197216
OPENBLAS_NUM_THREADS=2 ./xzcblat3_3m < zin3_3m
198217
endif
199218
endif
219+
endif
200220

201221

202222

@@ -271,15 +291,21 @@ xccblat2: $(ctestl2o) c_cblat2.o $(TOPDIR)/$(LIBNAME)
271291
$(FC) $(FLDFLAGS) -o xccblat2 c_cblat2.o $(ctestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
272292
xccblat3: $(ctestl3o) c_cblat3.o $(TOPDIR)/$(LIBNAME)
273293
$(FC) $(FLDFLAGS) -o xccblat3 c_cblat3.o $(ctestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
294+
ifeq ($(SUPPORT_GEMM3M),1)
274295
xccblat3_3m: $(ctestl3o_3m) c_cblat3_3m.o $(TOPDIR)/$(LIBNAME)
275296
$(FC) $(FLDFLAGS) -o xccblat3_3m c_cblat3_3m.o $(ctestl3o_3m) $(LIB) $(EXTRALIB) $(CEXTRALIB)
297+
endif
276298
else
277299
xccblat1: $(ctestl1o) c_cblat1c.o $(TOPDIR)/$(LIBNAME)
278300
$(CC) $(CFLAGS) -o xccblat1 c_cblat1c.o $(ctestl1o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
279301
xccblat2: $(ctestl2o) c_cblat2c.o $(TOPDIR)/$(LIBNAME)
280302
$(CC) $(CFLAGS) -o xccblat2 c_cblat2c.o $(ctestl2o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
281303
xccblat3: $(ctestl3o) c_cblat3c.o $(TOPDIR)/$(LIBNAME)
282304
$(CC) $(CFLAGS) -o xccblat3 c_cblat3c.o $(ctestl3o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
305+
ifeq ($(SUPPORT_GEMM3M),1)
306+
xccblat3_3m: $(ctestl3o_3m) c_cblat3c_3m.o $(TOPDIR)/$(LIBNAME)
307+
$(CC) $(CFLAGS) -o xccblat3_3m c_cblat3c_3m.o $(ctestl3o_3m) $(LIB) $(EXTRALIB) $(CEXTRALIB)
308+
endif
283309
endif
284310
endif
285311

@@ -293,15 +319,21 @@ xzcblat2: $(ztestl2o) c_zblat2.o $(TOPDIR)/$(LIBNAME)
293319
$(FC) $(FLDFLAGS) -o xzcblat2 c_zblat2.o $(ztestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
294320
xzcblat3: $(ztestl3o) c_zblat3.o $(TOPDIR)/$(LIBNAME)
295321
$(FC) $(FLDFLAGS) -o xzcblat3 c_zblat3.o $(ztestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
322+
ifeq ($(SUPPORT_GEMM3M),1)
296323
xzcblat3_3m: $(ztestl3o_3m) c_zblat3_3m.o $(TOPDIR)/$(LIBNAME)
297324
$(FC) $(FLDFLAGS) -o xzcblat3_3m c_zblat3_3m.o $(ztestl3o_3m) $(LIB) $(EXTRALIB) $(CEXTRALIB)
325+
endif
298326
else
299327
xzcblat1: $(ztestl1o) c_zblat1c.o $(TOPDIR)/$(LIBNAME)
300328
$(CC) $(CFLAGS) -o xzcblat1 c_zblat1c.o $(ztestl1o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
301329
xzcblat2: $(ztestl2o) c_zblat2c.o $(TOPDIR)/$(LIBNAME)
302330
$(CC) $(CFLAGS) -o xzcblat2 c_zblat2c.o $(ztestl2o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
303331
xzcblat3: $(ztestl3o) c_zblat3c.o $(TOPDIR)/$(LIBNAME)
304332
$(CC) $(CFLAGS) -o xzcblat3 c_zblat3c.o $(ztestl3o) $(LIB) $(CEXTRALIB) $(filter-out -lgfortran,$(EXTRALIB))
333+
ifeq ($(SUPPORT_GEMM3M),1)
334+
xzcblat3_3m: $(ztestl3o_3m) c_zblat3c_3m.o $(TOPDIR)/$(LIBNAME)
335+
$(CC) $(CFLAGS) -o xzcblat3_3m c_zblat3c_3m.o $(ztestl3o_3m) $(LIB) $(EXTRALIB) $(CEXTRALIB)
336+
endif
305337
endif
306338
endif
307339

0 commit comments

Comments
 (0)