Skip to content

Commit f9991fd

Browse files
committed
Merge branch 'develop'
2 parents da3d704 + 47688e2 commit f9991fd

File tree

22 files changed

+246
-46
lines changed

22 files changed

+246
-46
lines changed

Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,16 @@ ifndef NOFORTRAN
247247
-@echo "SUFFIX = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
248248
-@echo "PSUFFIX = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
249249
-@echo "CEXTRALIB = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
250-
ifeq ($(F_COMPILER), GFORTRAN)
250+
ifeq ($(FC), GFORTRAN)
251251
-@echo "TIMER = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc
252+
ifdef SMP
253+
-@echo "LOADER = $(FC) -pthread" >> $(NETLIB_LAPACK_DIR)/make.inc
254+
else
255+
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
256+
endif
252257
else
253258
-@echo "TIMER = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc
259+
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
254260
endif
255261
-@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
256262
endif

Makefile.rule

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44

55
# This library's version
6-
VERSION = 0.2.10.rc1
6+
VERSION = 0.2.10.rc2
77

88
# If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a
99
# and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library

cblas.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ void goto_set_num_threads(int num_threads);
1616
/*Get the build configure on runtime.*/
1717
char* openblas_get_config(void);
1818

19+
/*Get the CPU corename on runtime.*/
20+
char* openblas_get_corename(void);
21+
1922
/* Get the parallelization type which is used by OpenBLAS */
2023
int openblas_get_parallel(void);
2124
/* OpenBLAS is compiled for sequential use */

driver/level3/Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
TOPDIR = ../..
22
include ../../Makefile.system
33

4+
USE_GEMM3M = 0
5+
46
ifeq ($(ARCH), x86)
5-
USE_GEMM3M = 1
7+
USE_GEMM3M = 0
68
endif
79

810
ifeq ($(ARCH), x86_64)
9-
USE_GEMM3M = 1
11+
USE_GEMM3M = 0
1012
endif
1113

1214
ifeq ($(ARCH), ia64)
@@ -168,7 +170,7 @@ XBLASOBJS += \
168170
xher2k_kernel_UN.$(SUFFIX) xher2k_kernel_UC.$(SUFFIX) \
169171
xher2k_kernel_LN.$(SUFFIX) xher2k_kernel_LC.$(SUFFIX)
170172

171-
ifdef USE_GEMM3M
173+
ifeq ($(USE_GEMM3M), 1)
172174

173175
CBLASOBJS += \
174176
cgemm3m_nn.$(SUFFIX) cgemm3m_cn.$(SUFFIX) cgemm3m_tn.$(SUFFIX) cgemm3m_nc.$(SUFFIX) \
@@ -239,7 +241,7 @@ CBLASOBJS += cherk_thread_UN.$(SUFFIX) cherk_thread_UC.$(SUFFIX) cherk_thread
239241
ZBLASOBJS += zherk_thread_UN.$(SUFFIX) zherk_thread_UC.$(SUFFIX) zherk_thread_LN.$(SUFFIX) zherk_thread_LC.$(SUFFIX)
240242
XBLASOBJS += xherk_thread_UN.$(SUFFIX) xherk_thread_UC.$(SUFFIX) xherk_thread_LN.$(SUFFIX) xherk_thread_LC.$(SUFFIX)
241243

242-
ifdef USE_GEMM3M
244+
ifeq ($(USE_GEMM3M), 1)
243245

244246
CBLASOBJS += cgemm3m_thread_nn.$(SUFFIX) cgemm3m_thread_nt.$(SUFFIX) cgemm3m_thread_nr.$(SUFFIX) cgemm3m_thread_nc.$(SUFFIX)
245247
CBLASOBJS += cgemm3m_thread_tn.$(SUFFIX) cgemm3m_thread_tt.$(SUFFIX) cgemm3m_thread_tr.$(SUFFIX) cgemm3m_thread_tc.$(SUFFIX)

driver/others/openblas_get_config.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3232

3333
#include "common.h"
3434

35+
#include <string.h>
36+
3537
static char* openblas_config_str=""
3638
#ifdef USE64BITINT
3739
"USE64BITINT "
@@ -50,10 +52,33 @@ static char* openblas_config_str=""
5052
#endif
5153
#ifdef NO_AFFINITY
5254
"NO_AFFINITY "
55+
#endif
56+
#ifndef DYNAMIC_ARCH
57+
CHAR_CORENAME
5358
#endif
5459
;
5560

61+
#ifdef DYNAMIC_ARCH
62+
char *gotoblas_corename();
63+
static char tmp_config_str[256];
64+
#endif
65+
66+
5667
char* CNAME() {
68+
#ifndef DYNAMIC_ARCH
5769
return openblas_config_str;
70+
#else
71+
strcpy(tmp_config_str, openblas_config_str);
72+
strcat(tmp_config_str, gotoblas_corename());
73+
return tmp_config_str;
74+
#endif
5875
}
5976

77+
78+
char* openblas_get_corename() {
79+
#ifndef DYNAMIC_ARCH
80+
return CHAR_CORENAME;
81+
#else
82+
return gotoblas_corename();
83+
#endif
84+
}

driver/others/parameter.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,8 @@ int get_L2_size(void){
165165

166166
#if defined(ATHLON) || defined(OPTERON) || defined(BARCELONA) || defined(BOBCAT) || defined(BULLDOZER) || \
167167
defined(CORE_PRESCOTT) || defined(CORE_CORE2) || defined(PENRYN) || defined(DUNNINGTON) || \
168-
defined(CORE_NEHALEM) || defined(CORE_SANDYBRIDGE) || defined(ATOM) || defined(GENERIC)
168+
defined(CORE_NEHALEM) || defined(CORE_SANDYBRIDGE) || defined(ATOM) || defined(GENERIC) || \
169+
defined(PILEDRIVER) || defined(HASWELL)
169170

170171
cpuid(0x80000006, &eax, &ebx, &ecx, &edx);
171172

exports/gensymbol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
);
7474

7575
@gemm3mobjs = (
76-
zgemm3m, cgemm3m, zsymm3m, csymm3m, zhemm3m, chemm3m,
76+
7777
);
7878

7979

@@ -85,6 +85,7 @@
8585
@misc_no_underscore_objs = (
8686
goto_set_num_threads,
8787
openblas_get_config,
88+
openblas_get_corename,
8889
);
8990

9091
@misc_underscore_objs = (

getarch.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -952,6 +952,15 @@ int main(int argc, char *argv[]){
952952
#else
953953
get_cpuconfig();
954954
#endif
955+
956+
#ifdef FORCE
957+
printf("#define CHAR_CORENAME \"%s\"\n", CORENAME);
958+
#else
959+
#if defined(__i386__) || defined(__x86_64__) || defined(POWER) || defined(__mips__) || defined(__arm__)
960+
printf("#define CHAR_CORENAME \"%s\"\n", get_corename());
961+
#endif
962+
#endif
963+
955964
break;
956965

957966
case '2' : /* SMP */

interface/Makefile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
TOPDIR = ..
22
include $(TOPDIR)/Makefile.system
33

4+
SUPPORT_GEMM3M = 0
5+
46
ifeq ($(ARCH), x86)
57
SUPPORT_GEMM3M = 0
68
endif
@@ -124,7 +126,7 @@ ZBLAS3OBJS = \
124126
zhemm.$(SUFFIX) zherk.$(SUFFIX) zher2k.$(SUFFIX) \
125127
zomatcopy.$(SUFFIX) zimatcopy.$(SUFFIX)
126128

127-
ifdef SUPPORT_GEMM3M
129+
ifeq ($(SUPPORT_GEMM3M), 1)
128130

129131
CBLAS3OBJS += cgemm3m.$(SUFFIX) csymm3m.$(SUFFIX) chemm3m.$(SUFFIX)
130132

@@ -182,7 +184,7 @@ XBLAS3OBJS = \
182184
xtrsm.$(SUFFIX) xsyrk.$(SUFFIX) xsyr2k.$(SUFFIX) \
183185
xhemm.$(SUFFIX) xherk.$(SUFFIX) xher2k.$(SUFFIX)
184186

185-
ifdef SUPPORT_GEMM3M
187+
ifeq ($(SUPPORT_GEMM3M), 1)
186188

187189
XBLAS3OBJS += xgemm3m.$(SUFFIX) xsymm3m.$(SUFFIX) xhemm3m.$(SUFFIX)
188190

@@ -238,7 +240,7 @@ XBLAS3OBJS = \
238240
xtrsm.$(SUFFIX) xsyrk.$(SUFFIX) xsyr2k.$(SUFFIX) \
239241
xhemm.$(SUFFIX) xherk.$(SUFFIX) xher2k.$(SUFFIX)
240242

241-
ifdef SUPPORT_GEMM3M
243+
ifeq ($(SUPPORT_GEMM3M), 1)
242244

243245
XBLAS3OBJS += xgemm3m.$(SUFFIX) xsymm3m.$(SUFFIX) xhemm3m.$(SUFFIX)
244246

interface/ger.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
#include "functable.h"
4343
#endif
4444

45+
#ifdef SMP
46+
#ifdef __64BIT__
47+
#define SMPTEST 1
48+
#endif
49+
#endif
50+
4551
#ifdef XDOUBLE
4652
#define ERROR_NAME "QGER "
4753
#elif defined DOUBLE
@@ -75,7 +81,7 @@ void NAME(blasint *M, blasint *N, FLOAT *Alpha,
7581
blasint incy = *INCY;
7682
blasint lda = *LDA;
7783
FLOAT *buffer;
78-
#ifdef SMPBUG
84+
#ifdef SMPTEST
7985
int nthreads;
8086
#endif
8187

@@ -107,7 +113,7 @@ void CNAME(enum CBLAS_ORDER order,
107113

108114
FLOAT *buffer;
109115
blasint info, t;
110-
#ifdef SMPBUG
116+
#ifdef SMPTEST
111117
int nthreads;
112118
#endif
113119

@@ -167,7 +173,7 @@ void CNAME(enum CBLAS_ORDER order,
167173

168174
buffer = (FLOAT *)blas_memory_alloc(1);
169175

170-
#ifdef SMPBUG
176+
#ifdef SMPTEST
171177
nthreads = num_cpu_avail(2);
172178

173179

@@ -176,7 +182,7 @@ void CNAME(enum CBLAS_ORDER order,
176182

177183
GER(m, n, 0, alpha, x, incx, y, incy, a, lda, buffer);
178184

179-
#ifdef SMPBUG
185+
#ifdef SMPTEST
180186
} else {
181187

182188
GER_THREAD(m, n, alpha, x, incx, y, incy, a, lda, buffer, nthreads);

0 commit comments

Comments
 (0)