@@ -1098,6 +1098,16 @@ int get_cpuname(void){ | |||||
return CPUTYPE_HASWELL; | return CPUTYPE_HASWELL; | ||||
#else | #else | ||||
return CPUTYPE_SANDYBRIDGE; | return CPUTYPE_SANDYBRIDGE; | ||||
#endif | |||||
else | |||||
return CPUTYPE_NEHALEM; | |||||
case 13: | |||||
//Broadwell | |||||
if(support_avx()) | |||||
#ifndef NO_AVX2 | |||||
return CPUTYPE_HASWELL; | |||||
#else | |||||
return CPUTYPE_SANDYBRIDGE; | |||||
#endif | #endif | ||||
else | else | ||||
return CPUTYPE_NEHALEM; | return CPUTYPE_NEHALEM; | ||||
@@ -1112,11 +1122,36 @@ 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: | |||||
case 15: | |||||
//Broadwell | |||||
if(support_avx()) | |||||
#ifndef NO_AVX2 | |||||
return CPUTYPE_HASWELL; | |||||
#else | |||||
return CPUTYPE_SANDYBRIDGE; | |||||
#endif | #endif | ||||
else | else | ||||
return CPUTYPE_NEHALEM; | return CPUTYPE_NEHALEM; | ||||
} | } | ||||
break; | break; | ||||
case 5: | |||||
switch (model) { | |||||
case 6: | |||||
//Broadwell | |||||
if(support_avx()) | |||||
#ifndef NO_AVX2 | |||||
return CPUTYPE_HASWELL; | |||||
#else | |||||
return CPUTYPE_SANDYBRIDGE; | |||||
#endif | |||||
else | |||||
return CPUTYPE_NEHALEM; | |||||
} | |||||
break; | |||||
} | } | ||||
break; | break; | ||||
case 0x7: | case 0x7: | ||||
@@ -1525,6 +1560,16 @@ int get_coretype(void){ | |||||
return CORE_HASWELL; | return CORE_HASWELL; | ||||
#else | #else | ||||
return CORE_SANDYBRIDGE; | return CORE_SANDYBRIDGE; | ||||
#endif | |||||
else | |||||
return CORE_NEHALEM; | |||||
case 13: | |||||
//broadwell | |||||
if(support_avx()) | |||||
#ifndef NO_AVX2 | |||||
return CORE_HASWELL; | |||||
#else | |||||
return CORE_SANDYBRIDGE; | |||||
#endif | #endif | ||||
else | else | ||||
return CORE_NEHALEM; | return CORE_NEHALEM; | ||||
@@ -1539,11 +1584,36 @@ int get_coretype(void){ | |||||
return CORE_HASWELL; | return CORE_HASWELL; | ||||
#else | #else | ||||
return CORE_SANDYBRIDGE; | return CORE_SANDYBRIDGE; | ||||
#endif | |||||
else | |||||
return CORE_NEHALEM; | |||||
case 7: | |||||
case 15: | |||||
//broadwell | |||||
if(support_avx()) | |||||
#ifndef NO_AVX2 | |||||
return CORE_HASWELL; | |||||
#else | |||||
return CORE_SANDYBRIDGE; | |||||
#endif | #endif | ||||
else | else | ||||
return CORE_NEHALEM; | return CORE_NEHALEM; | ||||
} | } | ||||
break; | break; | ||||
case 5: | |||||
switch (model) { | |||||
case 6: | |||||
//broadwell | |||||
if(support_avx()) | |||||
#ifndef NO_AVX2 | |||||
return CORE_HASWELL; | |||||
#else | |||||
return CORE_SANDYBRIDGE; | |||||
#endif | |||||
else | |||||
return CORE_NEHALEM; | |||||
} | |||||
break; | |||||
} | } | ||||
break; | break; | ||||
@@ -221,6 +221,15 @@ 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 Broadwell | |||||
if (model == 13) { | |||||
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 4: | case 4: | ||||
//Intel Haswell | //Intel Haswell | ||||
@@ -232,6 +241,26 @@ 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 Broadwell | |||||
if (model == 7 || model == 15) { | |||||
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 5: | |||||
//Intel Broadwell | |||||
if (model == 6) { | |||||
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: | ||||