Browse Source

dynamic_arch

tags/v0.3.16^2
User User-User 5 years ago
parent
commit
6423b282a1
1 changed files with 12 additions and 1 deletions
  1. +12
    -1
      driver/others/dynamic_arm64.c

+ 12
- 1
driver/others/dynamic_arm64.c View File

@@ -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…
Cancel
Save