Merge pull request #1010 from martin-frbg/cpuid

Add TARGETs for newer Intel CPUs - Kaby Lake, Knights Landing, Apollo Lake
This commit is contained in:
Zhang Xianyi 2016-11-07 10:26:13 +08:00 committed by GitHub
commit b590cd45fc
2 changed files with 66 additions and 2 deletions

View File

@ -1205,8 +1205,34 @@ int get_cpuname(void){
#endif
else
return CPUTYPE_NEHALEM;
case 7:
// Xeon Phi Knights Landing
if(support_avx())
#ifndef NO_AVX2
return CPUTYPE_HASWELL;
#else
return CPUTYPE_SANDYBRIDGE;
#endif
else
return CPUTYPE_NEHALEM;
case 12:
// Apollo Lake
return CPUTYPE_NEHALEM;
}
break;
case 8:
switch (model) {
case 14: // Kaby Lake
if(support_avx())
#ifndef NO_AVX2
return CPUTYPE_HASWELL;
#else
return CPUTYPE_SANDYBRIDGE;
#endif
else
return CPUTYPE_NEHALEM;
}
break;
}
break;
case 0x7:
@ -1713,8 +1739,24 @@ int get_coretype(void){
#endif
else
return CORE_NEHALEM;
}
case 7:
// Phi Knights Landing
if(support_avx())
#ifndef NO_AVX2
return CORE_HASWELL;
#else
return CORE_SANDYBRIDGE;
#endif
else
return CORE_NEHALEM;
case 12:
// Apollo Lake
return CORE_NEHALEM;
}
break;
case 8:
if (model == 14) // Kaby Lake
return CORE_HASWELL;
}
break;

View File

@ -264,7 +264,6 @@ static gotoblas_t *get_coretype(void){
}
//Intel Braswell / Avoton
if (model == 12 || model == 13) {
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK);
return &gotoblas_NEHALEM;
}
return NULL;
@ -287,6 +286,29 @@ static gotoblas_t *get_coretype(void){
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels.
}
}
//Intel Phi Knights Landing
if (model == 7) {
if(support_avx())
return &gotoblas_HASWELL;
else{
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK);
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels.
}
}
//Apollo Lake
if (model == 14) {
return &gotoblas_NEHALEM;
}
return NULL;
case 8:
if (model == 14 ) { // Kaby Lake
if(support_avx())
return &gotoblas_HASWELL;
else{
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK);
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels.
}
}
return NULL;
}
case 0xf: