dynamic_arch
This commit is contained in:
parent
9335d42740
commit
6423b282a1
|
@ -99,6 +99,11 @@ extern gotoblas_t gotoblas_NEOVERSEN1;
|
||||||
#else
|
#else
|
||||||
#define gotoblas_NEOVERSEN1 gotoblas_ARMV8
|
#define gotoblas_NEOVERSEN1 gotoblas_ARMV8
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef DYN_CORTEX_A55
|
||||||
|
extern gotoblas_t gotoblas_CORTEXA55;
|
||||||
|
#else
|
||||||
|
#define gotoblas_NEOVERSEN1 gotoblas_ARMV8
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
extern gotoblas_t gotoblas_CORTEXA53;
|
extern gotoblas_t gotoblas_CORTEXA53;
|
||||||
extern gotoblas_t gotoblas_CORTEXA57;
|
extern gotoblas_t gotoblas_CORTEXA57;
|
||||||
|
@ -111,11 +116,12 @@ extern gotoblas_t gotoblas_TSV110;
|
||||||
extern gotoblas_t gotoblas_EMAG8180;
|
extern gotoblas_t gotoblas_EMAG8180;
|
||||||
extern gotoblas_t gotoblas_NEOVERSEN1;
|
extern gotoblas_t gotoblas_NEOVERSEN1;
|
||||||
extern gotoblas_t gotoblas_THUNDERX3T110;
|
extern gotoblas_t gotoblas_THUNDERX3T110;
|
||||||
|
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 NUM_CORETYPES 12
|
#define NUM_CORETYPES 13
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* In case asm/hwcap.h is outdated on the build system, make sure
|
* In case asm/hwcap.h is outdated on the build system, make sure
|
||||||
|
@ -142,6 +148,7 @@ static char *corename[] = {
|
||||||
"emag8180",
|
"emag8180",
|
||||||
"neoversen1",
|
"neoversen1",
|
||||||
"thunderx3t110",
|
"thunderx3t110",
|
||||||
|
"cortexa55",
|
||||||
"unknown"
|
"unknown"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -158,6 +165,7 @@ char *gotoblas_corename(void) {
|
||||||
if (gotoblas == &gotoblas_EMAG8180) return corename[ 9];
|
if (gotoblas == &gotoblas_EMAG8180) return corename[ 9];
|
||||||
if (gotoblas == &gotoblas_NEOVERSEN1) return corename[10];
|
if (gotoblas == &gotoblas_NEOVERSEN1) return corename[10];
|
||||||
if (gotoblas == &gotoblas_THUNDERX3T110) return corename[11];
|
if (gotoblas == &gotoblas_THUNDERX3T110) return corename[11];
|
||||||
|
if (gotoblas == &gotoblas_CORTEXA55) return corename[12];
|
||||||
return corename[NUM_CORETYPES];
|
return corename[NUM_CORETYPES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,6 +197,7 @@ static gotoblas_t *force_coretype(char *coretype) {
|
||||||
case 9: return (&gotoblas_EMAG8180);
|
case 9: return (&gotoblas_EMAG8180);
|
||||||
case 10: return (&gotoblas_NEOVERSEN1);
|
case 10: return (&gotoblas_NEOVERSEN1);
|
||||||
case 11: return (&gotoblas_THUNDERX3T110);
|
case 11: return (&gotoblas_THUNDERX3T110);
|
||||||
|
case 12: return (&gotoblas_CORTEXA55);
|
||||||
}
|
}
|
||||||
snprintf(message, 128, "Core not found: %s\n", coretype);
|
snprintf(message, 128, "Core not found: %s\n", coretype);
|
||||||
openblas_warning(1, message);
|
openblas_warning(1, message);
|
||||||
|
@ -247,6 +256,8 @@ static gotoblas_t *get_coretype(void) {
|
||||||
return &gotoblas_CORTEXA73;
|
return &gotoblas_CORTEXA73;
|
||||||
case 0xd0c: // Neoverse N1
|
case 0xd0c: // Neoverse N1
|
||||||
return &gotoblas_NEOVERSEN1;
|
return &gotoblas_NEOVERSEN1;
|
||||||
|
case 0xd05: // Cortex A55
|
||||||
|
return &gotoblas_CORTEXA55;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x42: // Broadcom
|
case 0x42: // Broadcom
|
||||||
|
|
Loading…
Reference in New Issue