Fixed #407. Support outputing the CPU corename on runtime.
The user can use char * openblas_get_config() or char * openblas_get_corename().
This commit is contained in:
parent
94d3cfaa10
commit
552119c484
3
cblas.h
3
cblas.h
|
@ -16,6 +16,9 @@ void goto_set_num_threads(int num_threads);
|
|||
/*Get the build configure on runtime.*/
|
||||
char* openblas_get_config(void);
|
||||
|
||||
/*Get the CPU corename on runtime.*/
|
||||
char* openblas_get_corename(void);
|
||||
|
||||
/* Get the parallelization type which is used by OpenBLAS */
|
||||
int openblas_get_parallel(void);
|
||||
/* OpenBLAS is compiled for sequential use */
|
||||
|
|
|
@ -32,6 +32,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
#include "common.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
static char* openblas_config_str=""
|
||||
#ifdef USE64BITINT
|
||||
"USE64BITINT "
|
||||
|
@ -50,10 +52,33 @@ static char* openblas_config_str=""
|
|||
#endif
|
||||
#ifdef NO_AFFINITY
|
||||
"NO_AFFINITY "
|
||||
#endif
|
||||
#ifndef DYNAMIC_ARCH
|
||||
CHAR_CORENAME
|
||||
#endif
|
||||
;
|
||||
|
||||
#ifdef DYNAMIC_ARCH
|
||||
char *gotoblas_corename();
|
||||
static char tmp_config_str[256];
|
||||
#endif
|
||||
|
||||
|
||||
char* CNAME() {
|
||||
#ifndef DYNAMIC_ARCH
|
||||
return openblas_config_str;
|
||||
#else
|
||||
strcpy(tmp_config_str, openblas_config_str);
|
||||
strcat(tmp_config_str, gotoblas_corename());
|
||||
return tmp_config_str;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
char* openblas_get_corename() {
|
||||
#ifndef DYNAMIC_ARCH
|
||||
return CHAR_CORENAME;
|
||||
#else
|
||||
return gotoblas_corename();
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -85,6 +85,7 @@
|
|||
@misc_no_underscore_objs = (
|
||||
goto_set_num_threads,
|
||||
openblas_get_config,
|
||||
openblas_get_corename,
|
||||
);
|
||||
|
||||
@misc_underscore_objs = (
|
||||
|
|
|
@ -952,6 +952,15 @@ int main(int argc, char *argv[]){
|
|||
#else
|
||||
get_cpuconfig();
|
||||
#endif
|
||||
|
||||
#ifdef FORCE
|
||||
printf("#define CHAR_CORENAME \"%s\"\n", CORENAME);
|
||||
#else
|
||||
#if defined(__i386__) || defined(__x86_64__) || defined(POWER) || defined(__mips__) || defined(__arm__)
|
||||
printf("#define CHAR_CORENAME \"%s\"\n", get_corename());
|
||||
#endif
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
case '2' : /* SMP */
|
||||
|
|
Loading…
Reference in New Issue