Detect AMD Trinity and Richland.

This commit is contained in:
Zhang Xianyi 2015-10-29 02:53:29 +08:00
parent 1331642f24
commit 839395fc25
2 changed files with 25 additions and 4 deletions

View File

@ -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;

View File

@ -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;