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