Skip to content

Commit 5af5100

Browse files
authored
Merge pull request #3233 from martin-frbg/issue3230
Add autodetection for Intel Ice Lake SP
2 parents 164551d + cbfd3c8 commit 5af5100

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

cpuid_x86.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1398,6 +1398,17 @@ int get_cpuname(void){
13981398
return CPUTYPE_SANDYBRIDGE;
13991399
else
14001400
return CPUTYPE_NEHALEM;
1401+
case 10: // Ice Lake SP
1402+
if(support_avx512_bf16())
1403+
return CPUTYPE_COOPERLAKE;
1404+
if(support_avx512())
1405+
return CPUTYPE_SKYLAKEX;
1406+
if(support_avx2())
1407+
return CPUTYPE_HASWELL;
1408+
if(support_avx())
1409+
return CPUTYPE_SANDYBRIDGE;
1410+
else
1411+
return CPUTYPE_NEHALEM;
14011412
}
14021413
break;
14031414
case 7: // family 6 exmodel 7
@@ -2112,7 +2123,22 @@ int get_coretype(void){
21122123
#endif
21132124
else
21142125
return CORE_NEHALEM;
2115-
#endif
2126+
#endif
2127+
if (model == 10)
2128+
#ifndef NO_AVX512
2129+
if(support_avx512_bf16())
2130+
return CORE_COOPERLAKE;
2131+
return CORE_SKYLAKEX;
2132+
#else
2133+
if(support_avx())
2134+
#ifndef NO_AVX2
2135+
return CORE_HASWELL;
2136+
#else
2137+
return CORE_SANDYBRIDGE;
2138+
#endif
2139+
else
2140+
return CORE_NEHALEM;
2141+
#endif
21162142
break;
21172143
case 7:
21182144
if (model == 10)

driver/others/dynamic.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,22 @@ static gotoblas_t *get_coretype(void){
621621
return &gotoblas_NEHALEM;
622622
}
623623
}
624+
if (model == 10) {
625+
// Ice Lake SP
626+
if(support_avx512_bf16())
627+
return &gotoblas_COOPERLAKE;
628+
if (support_avx512())
629+
return &gotoblas_SKYLAKEX;
630+
if(support_avx2())
631+
return &gotoblas_HASWELL;
632+
if(support_avx()) {
633+
openblas_warning(FALLBACK_VERBOSE, SANDYBRIDGE_FALLBACK);
634+
return &gotoblas_SANDYBRIDGE;
635+
} else {
636+
openblas_warning(FALLBACK_VERBOSE, NEHALEM_FALLBACK);
637+
return &gotoblas_NEHALEM;
638+
}
639+
}
624640
return NULL;
625641
case 7:
626642
if (model == 10) // Goldmont Plus

0 commit comments

Comments
 (0)