Refs #401. Added NO_AVX2 flag for old binutils (e.g. RHEL6)
This commit is contained in:
parent
3dd094f17a
commit
c94762bb56
|
@ -99,6 +99,9 @@ NO_AFFINITY = 1
|
||||||
# and OS. However, the performance is low.
|
# and OS. However, the performance is low.
|
||||||
# NO_AVX = 1
|
# NO_AVX = 1
|
||||||
|
|
||||||
|
# Don't use Haswell optimizations if binutils is too old (e.g. RHEL6)
|
||||||
|
# NO_AVX2 = 1
|
||||||
|
|
||||||
# Don't use parallel make.
|
# Don't use parallel make.
|
||||||
# NO_PARALLEL_MAKE = 1
|
# NO_PARALLEL_MAKE = 1
|
||||||
|
|
||||||
|
|
|
@ -109,6 +109,10 @@ ifeq ($(BINARY), 32)
|
||||||
GETARCH_FLAGS += -DNO_AVX
|
GETARCH_FLAGS += -DNO_AVX
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(NO_AVX2), 1)
|
||||||
|
GETARCH_FLAGS += -DNO_AVX2
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(DEBUG), 1)
|
ifeq ($(DEBUG), 1)
|
||||||
GETARCH_FLAGS += -g
|
GETARCH_FLAGS += -g
|
||||||
endif
|
endif
|
||||||
|
@ -385,7 +389,10 @@ endif
|
||||||
ifeq ($(ARCH), x86_64)
|
ifeq ($(ARCH), x86_64)
|
||||||
DYNAMIC_CORE = PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO
|
DYNAMIC_CORE = PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO
|
||||||
ifneq ($(NO_AVX), 1)
|
ifneq ($(NO_AVX), 1)
|
||||||
DYNAMIC_CORE += SANDYBRIDGE BULLDOZER PILEDRIVER HASWELL
|
DYNAMIC_CORE += SANDYBRIDGE BULLDOZER PILEDRIVER
|
||||||
|
endif
|
||||||
|
ifneq ($(NO_AVX2), 1)
|
||||||
|
DYNAMIC_CORE += HASWELL
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -777,6 +784,10 @@ ifeq ($(BINARY), 32)
|
||||||
CCOMMON_OPT += -DNO_AVX
|
CCOMMON_OPT += -DNO_AVX
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(NO_AVX2), 1)
|
||||||
|
CCOMMON_OPT += -DNO_AVX2
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef SMP
|
ifdef SMP
|
||||||
CCOMMON_OPT += -DSMP_SERVER
|
CCOMMON_OPT += -DSMP_SERVER
|
||||||
|
|
||||||
|
|
16
cpuid_x86.c
16
cpuid_x86.c
|
@ -1062,7 +1062,11 @@ int get_cpuname(void){
|
||||||
case 12:
|
case 12:
|
||||||
case 15:
|
case 15:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
|
#ifndef NO_AVX2
|
||||||
return CPUTYPE_HASWELL;
|
return CPUTYPE_HASWELL;
|
||||||
|
#else
|
||||||
|
return CPUTYPE_SANDYBRIDGE;
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
return CPUTYPE_NEHALEM;
|
return CPUTYPE_NEHALEM;
|
||||||
}
|
}
|
||||||
|
@ -1072,7 +1076,11 @@ int get_cpuname(void){
|
||||||
case 5:
|
case 5:
|
||||||
case 6:
|
case 6:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
|
#ifndef NO_AVX2
|
||||||
return CPUTYPE_HASWELL;
|
return CPUTYPE_HASWELL;
|
||||||
|
#else
|
||||||
|
return CPUTYPE_SANDYBRIDGE;
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
return CPUTYPE_NEHALEM;
|
return CPUTYPE_NEHALEM;
|
||||||
}
|
}
|
||||||
|
@ -1471,7 +1479,11 @@ int get_coretype(void){
|
||||||
case 12:
|
case 12:
|
||||||
case 15:
|
case 15:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
|
#ifndef NO_AVX2
|
||||||
return CORE_HASWELL;
|
return CORE_HASWELL;
|
||||||
|
#else
|
||||||
|
return CORE_SANDYBRIDGE;
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
return CORE_NEHALEM;
|
return CORE_NEHALEM;
|
||||||
}
|
}
|
||||||
|
@ -1481,7 +1493,11 @@ int get_coretype(void){
|
||||||
case 5:
|
case 5:
|
||||||
case 6:
|
case 6:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
|
#ifndef NO_AVX2
|
||||||
return CORE_HASWELL;
|
return CORE_HASWELL;
|
||||||
|
#else
|
||||||
|
return CORE_SANDYBRIDGE;
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
return CORE_NEHALEM;
|
return CORE_NEHALEM;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,11 @@ extern gotoblas_t gotoblas_BOBCAT;
|
||||||
extern gotoblas_t gotoblas_SANDYBRIDGE;
|
extern gotoblas_t gotoblas_SANDYBRIDGE;
|
||||||
extern gotoblas_t gotoblas_BULLDOZER;
|
extern gotoblas_t gotoblas_BULLDOZER;
|
||||||
extern gotoblas_t gotoblas_PILEDRIVER;
|
extern gotoblas_t gotoblas_PILEDRIVER;
|
||||||
|
#ifdef NO_AVX2
|
||||||
|
#define gotoblas_HASWELL gotoblas_SANDYBRIDGE
|
||||||
|
#else
|
||||||
extern gotoblas_t gotoblas_HASWELL;
|
extern gotoblas_t gotoblas_HASWELL;
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
//Use NEHALEM kernels for sandy bridge
|
//Use NEHALEM kernels for sandy bridge
|
||||||
#define gotoblas_SANDYBRIDGE gotoblas_NEHALEM
|
#define gotoblas_SANDYBRIDGE gotoblas_NEHALEM
|
||||||
|
|
Loading…
Reference in New Issue