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:
commit
b590cd45fc
44
cpuid_x86.c
44
cpuid_x86.c
|
@ -1202,6 +1202,32 @@ int get_cpuname(void){
|
||||||
return CPUTYPE_HASWELL;
|
return CPUTYPE_HASWELL;
|
||||||
#else
|
#else
|
||||||
return CPUTYPE_SANDYBRIDGE;
|
return CPUTYPE_SANDYBRIDGE;
|
||||||
|
#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
|
#endif
|
||||||
else
|
else
|
||||||
return CPUTYPE_NEHALEM;
|
return CPUTYPE_NEHALEM;
|
||||||
|
@ -1713,8 +1739,24 @@ int get_coretype(void){
|
||||||
#endif
|
#endif
|
||||||
else
|
else
|
||||||
return CORE_NEHALEM;
|
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;
|
break;
|
||||||
|
case 8:
|
||||||
|
if (model == 14) // Kaby Lake
|
||||||
|
return CORE_HASWELL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -264,7 +264,6 @@ static gotoblas_t *get_coretype(void){
|
||||||
}
|
}
|
||||||
//Intel Braswell / Avoton
|
//Intel Braswell / Avoton
|
||||||
if (model == 12 || model == 13) {
|
if (model == 12 || model == 13) {
|
||||||
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK);
|
|
||||||
return &gotoblas_NEHALEM;
|
return &gotoblas_NEHALEM;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -287,6 +286,29 @@ static gotoblas_t *get_coretype(void){
|
||||||
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels.
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
case 0xf:
|
case 0xf:
|
||||||
|
|
Loading…
Reference in New Issue