File tree Expand file tree Collapse file tree 2 files changed +32
-9
lines changed Expand file tree Collapse file tree 2 files changed +32
-9
lines changed Original file line number Diff line number Diff line change @@ -1454,10 +1454,11 @@ int get_cpuname(void){
1454
1454
return CPUTYPE_OPTERON ;
1455
1455
case 1 :
1456
1456
case 3 :
1457
- case 7 :
1458
- case 10 :
1457
+ // case 7:
1458
+ // case 10:
1459
1459
return CPUTYPE_BARCELONA ;
1460
1460
case 5 :
1461
+ case 7 :
1461
1462
return CPUTYPE_BOBCAT ;
1462
1463
case 6 :
1463
1464
switch (model ) {
@@ -1507,6 +1508,8 @@ int get_cpuname(void){
1507
1508
// AMD Ryzen
1508
1509
case 8 :
1509
1510
// AMD Ryzen2
1511
+ default :
1512
+ // Matisse/Renoir and other recent Ryzen2
1510
1513
if (support_avx ())
1511
1514
#ifndef NO_AVX2
1512
1515
return CPUTYPE_ZEN ;
@@ -1516,6 +1519,16 @@ int get_cpuname(void){
1516
1519
else
1517
1520
return CPUTYPE_BARCELONA ;
1518
1521
}
1522
+ break ;
1523
+ case 10 : // Zen3
1524
+ if (support_avx ())
1525
+ #ifndef NO_AVX2
1526
+ return CPUTYPE_ZEN ;
1527
+ #else
1528
+ return CPUTYPE_SANDYBRIDGE ; // Zen is closer in architecture to Sandy Bridge than to Excavator
1529
+ #endif
1530
+ else
1531
+ return CPUTYPE_BARCELONA ;
1519
1532
}
1520
1533
break ;
1521
1534
}
@@ -2107,7 +2120,7 @@ int get_coretype(void){
2107
2120
return CORE_PILEDRIVER ;
2108
2121
else
2109
2122
return CORE_BARCELONA ; //OS don't support AVX.
2110
- case 5 : // New EXCAVATOR
2123
+ case 5 : // New EXCAVATOR
2111
2124
if (support_avx ())
2112
2125
return CORE_EXCAVATOR ;
2113
2126
else
@@ -2135,12 +2148,14 @@ int get_coretype(void){
2135
2148
}
2136
2149
break ;
2137
2150
}
2138
- } else if (exfamily == 8 ) {
2151
+ } else if (exfamily == 8 || exfamily == 10 ) {
2139
2152
switch (model ) {
2140
2153
case 1 :
2141
2154
// AMD Ryzen
2142
2155
case 8 :
2143
- // Ryzen 2
2156
+ // Ryzen 2
2157
+ default :
2158
+ // Matisse,Renoir Ryzen2 models
2144
2159
if (support_avx ())
2145
2160
#ifndef NO_AVX2
2146
2161
return CORE_ZEN ;
Original file line number Diff line number Diff line change @@ -656,7 +656,7 @@ static gotoblas_t *get_coretype(void){
656
656
if ((exfamily == 0 ) || (exfamily == 2 )) {
657
657
if (ecx & (1 << 0 )) return & gotoblas_OPTERON_SSE3 ;
658
658
else return & gotoblas_OPTERON ;
659
- } else if (exfamily == 5 ) {
659
+ } else if (exfamily == 5 || exfamily == 7 ) {
660
660
return & gotoblas_BOBCAT ;
661
661
} else if (exfamily == 6 ) {
662
662
if (model == 1 ){
@@ -710,24 +710,32 @@ static gotoblas_t *get_coretype(void){
710
710
}
711
711
}
712
712
} else if (exfamily == 8 ) {
713
- if (model == 1 || model == 8 ) {
713
+ /* if (model == 1 || model == 8) */ {
714
714
if (support_avx ())
715
715
return & gotoblas_ZEN ;
716
716
else {
717
717
openblas_warning (FALLBACK_VERBOSE , BARCELONA_FALLBACK );
718
718
return & gotoblas_BARCELONA ; //OS doesn't support AVX. Use old kernels.
719
719
}
720
720
}
721
- } else if (exfamily == 9 ) {
721
+ } else if (exfamily == 9 ) {
722
722
if (support_avx ())
723
723
return & gotoblas_ZEN ;
724
724
else {
725
725
openblas_warning (FALLBACK_VERBOSE , BARCELONA_FALLBACK );
726
726
return & gotoblas_BARCELONA ; //OS doesn't support AVX. Use old kernels.
727
- }
727
+ }
728
+ } else if (exfamily == 10 ) {
729
+ if (support_avx ())
730
+ return & gotoblas_ZEN ;
731
+ else {
732
+ openblas_warning (FALLBACK_VERBOSE , BARCELONA_FALLBACK );
733
+ return & gotoblas_BARCELONA ; //OS doesn't support AVX. Use old kernels.
734
+ }
728
735
}else {
729
736
return & gotoblas_BARCELONA ;
730
737
}
738
+
731
739
}
732
740
}
733
741
You can’t perform that action at this time.
0 commit comments