Merge branch 'xianyi:develop' into issue4101
This commit is contained in:
commit
3bdcf3259d
|
@ -137,6 +137,8 @@ extern gotoblas_t gotoblas_CORTEXA55;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void openblas_warning(int verbose, const char * msg);
|
extern void openblas_warning(int verbose, const char * msg);
|
||||||
|
#define FALLBACK_VERBOSE 1
|
||||||
|
#define NEOVERSEN1_FALLBACK "OpenBLAS : Your OS does not support SVE instructions. OpenBLAS is using Neoverse N1 kernels as a fallback, which may give poorer performance.\n"
|
||||||
|
|
||||||
#define NUM_CORETYPES 13
|
#define NUM_CORETYPES 13
|
||||||
|
|
||||||
|
@ -147,6 +149,9 @@ extern void openblas_warning(int verbose, const char * msg);
|
||||||
#ifndef HWCAP_CPUID
|
#ifndef HWCAP_CPUID
|
||||||
#define HWCAP_CPUID (1 << 11)
|
#define HWCAP_CPUID (1 << 11)
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef HWCAP_SVE
|
||||||
|
#define HWCAP_SVE (1 << 22)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define get_cpu_ftr(id, var) ({ \
|
#define get_cpu_ftr(id, var) ({ \
|
||||||
__asm__ __volatile__ ("mrs %0, "#id : "=r" (var)); \
|
__asm__ __volatile__ ("mrs %0, "#id : "=r" (var)); \
|
||||||
|
@ -281,9 +286,17 @@ static gotoblas_t *get_coretype(void) {
|
||||||
return &gotoblas_NEOVERSEN1;
|
return &gotoblas_NEOVERSEN1;
|
||||||
#ifndef NO_SVE
|
#ifndef NO_SVE
|
||||||
case 0xd49:
|
case 0xd49:
|
||||||
return &gotoblas_NEOVERSEN2;
|
if (!(getauxval(AT_HWCAP) & HWCAP_SVE)) {
|
||||||
|
openblas_warning(FALLBACK_VERBOSE, NEOVERSEN1_FALLBACK);
|
||||||
|
return &gotoblas_NEOVERSEN1;
|
||||||
|
} else
|
||||||
|
return &gotoblas_NEOVERSEN2;
|
||||||
case 0xd40:
|
case 0xd40:
|
||||||
return &gotoblas_NEOVERSEV1;
|
if (!(getauxval(AT_HWCAP) & HWCAP_SVE)) {
|
||||||
|
openblas_warning(FALLBACK_VERBOSE, NEOVERSEN1_FALLBACK);
|
||||||
|
return &gotoblas_NEOVERSEN1;
|
||||||
|
}else
|
||||||
|
return &gotoblas_NEOVERSEV1;
|
||||||
#endif
|
#endif
|
||||||
case 0xd05: // Cortex A55
|
case 0xd05: // Cortex A55
|
||||||
return &gotoblas_CORTEXA55;
|
return &gotoblas_CORTEXA55;
|
||||||
|
|
|
@ -59,6 +59,7 @@ SDOTKERNEL = dot_vector.c
|
||||||
DDOTKERNEL = dot_vector.c
|
DDOTKERNEL = dot_vector.c
|
||||||
CDOTKERNEL = zdot_vector.c
|
CDOTKERNEL = zdot_vector.c
|
||||||
ZDOTKERNEL = zdot_vector.c
|
ZDOTKERNEL = zdot_vector.c
|
||||||
|
DSDOTKERNEL = ../generic/dot.c
|
||||||
|
|
||||||
SNRM2KERNEL = nrm2_vector.c
|
SNRM2KERNEL = nrm2_vector.c
|
||||||
DNRM2KERNEL = nrm2_vector.c
|
DNRM2KERNEL = nrm2_vector.c
|
||||||
|
|
Loading…
Reference in New Issue