Detect AMD Trinity and Richland.
This commit is contained in:
parent
1331642f24
commit
839395fc25
17
cpuid_x86.c
17
cpuid_x86.c
|
@ -1239,13 +1239,19 @@ int get_cpuname(void){
|
||||||
return CPUTYPE_BULLDOZER;
|
return CPUTYPE_BULLDOZER;
|
||||||
else
|
else
|
||||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
case 2:
|
case 2: //AMD Piledriver
|
||||||
|
case 3: //AMD Richland
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CPUTYPE_PILEDRIVER;
|
return CPUTYPE_PILEDRIVER;
|
||||||
else
|
else
|
||||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
case 0:
|
case 0:
|
||||||
switch(exmodel){
|
switch(exmodel){
|
||||||
|
case 1: //AMD Trinity
|
||||||
|
if(support_avx())
|
||||||
|
return CPUTYPE_PILEDRIVER;
|
||||||
|
else
|
||||||
|
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||||
case 3:
|
case 3:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CPUTYPE_STEAMROLLER;
|
return CPUTYPE_STEAMROLLER;
|
||||||
|
@ -1718,7 +1724,8 @@ int get_coretype(void){
|
||||||
return CORE_BULLDOZER;
|
return CORE_BULLDOZER;
|
||||||
else
|
else
|
||||||
return CORE_BARCELONA; //OS don't support AVX.
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
case 2:
|
case 2: //AMD Piledriver
|
||||||
|
case 3: //AMD Richland
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CORE_PILEDRIVER;
|
return CORE_PILEDRIVER;
|
||||||
else
|
else
|
||||||
|
@ -1726,6 +1733,12 @@ int get_coretype(void){
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
switch(exmodel){
|
switch(exmodel){
|
||||||
|
case 1: //AMD Trinity
|
||||||
|
if(support_avx())
|
||||||
|
return CORE_PILEDRIVER;
|
||||||
|
else
|
||||||
|
return CORE_BARCELONA; //OS don't support AVX.
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return CORE_STEAMROLLER;
|
return CORE_STEAMROLLER;
|
||||||
|
|
|
@ -318,7 +318,7 @@ static gotoblas_t *get_coretype(void){
|
||||||
openblas_warning(FALLBACK_VERBOSE, BARCELONA_FALLBACK);
|
openblas_warning(FALLBACK_VERBOSE, BARCELONA_FALLBACK);
|
||||||
return &gotoblas_BARCELONA; //OS doesn't support AVX. Use old kernels.
|
return &gotoblas_BARCELONA; //OS doesn't support AVX. Use old kernels.
|
||||||
}
|
}
|
||||||
}else if(model == 2){
|
}else if(model == 2 || model == 3){
|
||||||
//AMD Bulldozer Opteron 6300 / Opteron 4300 / Opteron 3300
|
//AMD Bulldozer Opteron 6300 / Opteron 4300 / Opteron 3300
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return &gotoblas_PILEDRIVER;
|
return &gotoblas_PILEDRIVER;
|
||||||
|
@ -327,7 +327,15 @@ static gotoblas_t *get_coretype(void){
|
||||||
return &gotoblas_BARCELONA; //OS doesn't support AVX. Use old kernels.
|
return &gotoblas_BARCELONA; //OS doesn't support AVX. Use old kernels.
|
||||||
}
|
}
|
||||||
}else if(model == 0){
|
}else if(model == 0){
|
||||||
if (exmodel == 3) {
|
if (exmodel == 1) {
|
||||||
|
//AMD Trinity
|
||||||
|
if(support_avx())
|
||||||
|
return &gotoblas_PILEDRIVER;
|
||||||
|
else{
|
||||||
|
openblas_warning(FALLBACK_VERBOSE, BARCELONA_FALLBACK);
|
||||||
|
return &gotoblas_BARCELONA; //OS doesn't support AVX. Use old kernels.
|
||||||
|
}
|
||||||
|
}else if (exmodel == 3) {
|
||||||
//AMD STEAMROLLER
|
//AMD STEAMROLLER
|
||||||
if(support_avx())
|
if(support_avx())
|
||||||
return &gotoblas_STEAMROLLER;
|
return &gotoblas_STEAMROLLER;
|
||||||
|
|
Loading…
Reference in New Issue