Browse Source

Fixed #407. Support outputing the CPU corename on runtime.

The user can use char * openblas_get_config() or char * openblas_get_corename().
tags/v0.2.10.rc2^2
Zhang Xianyi 11 years ago
parent
commit
552119c484
4 changed files with 38 additions and 0 deletions
  1. +3
    -0
      cblas.h
  2. +25
    -0
      driver/others/openblas_get_config.c
  3. +1
    -0
      exports/gensymbol
  4. +9
    -0
      getarch.c

+ 3
- 0
cblas.h View File

@@ -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 */


+ 25
- 0
driver/others/openblas_get_config.c View File

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

+ 1
- 0
exports/gensymbol View File

@@ -85,6 +85,7 @@
@misc_no_underscore_objs = (
goto_set_num_threads,
openblas_get_config,
openblas_get_corename,
);

@misc_underscore_objs = (


+ 9
- 0
getarch.c View File

@@ -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…
Cancel
Save