#else
extern gotoblas_t gotoblas_HASWELL;
extern gotoblas_t gotoblas_ZEN;
+#ifndef NO_AVX512
+extern gotoblas_t gotoblas_SKYLAKEX;
+#else
+#define gotoblas_SKYLAKEX gotoblas_HASWELL;
+#endif
#endif
#else
//Use NEHALEM kernels for sandy bridge
return &gotoblas_NEHALEM; //OS doesn't support AVX. Use old kernels.
}
}
+ if (model == 5) {
+ // Intel Skylake X
+#ifndef NO_AVX512
+ return $gotoblas_SKYLAKEX;
+#else
+ if(support_avx())
+ return &gotoblas_HASWELL;
+ else {
+ openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK);
+ return &gotoblas_NEHALEM;
+ }
+ }
+#endif
//Intel Skylake
- if (model == 14 || model == 5) {
+ if (model == 14) {
if(support_avx())
return &gotoblas_HASWELL;
else{
"Haswell",
"Steamroller",
"Excavator",
- "Zen"
+ "Zen",
+ "SkylakeX"
};
char *gotoblas_corename(void) {
if (gotoblas == &gotoblas_STEAMROLLER) return corename[21];
if (gotoblas == &gotoblas_EXCAVATOR) return corename[22];
if (gotoblas == &gotoblas_ZEN) return corename[23];
-
+ if (gotoblas == &gotoblas_SKYLAKEX) return corename[24];
return corename[0];
}
switch (found)
{
+ case 24: return (&gotoblas_SKYLAKEX);
case 23: return (&gotoblas_ZEN);
case 22: return (&gotoblas_EXCAVATOR);
case 21: return (&gotoblas_STEAMROLLER);