void CONSTRUCTOR gotoblas_init(void) { if (gotoblas_initialized) return; #ifdef SMP openblas_fork_handler(); #endif #ifdef PROFILE moncontrol (0); #endif #ifdef DYNAMIC_ARCH gotoblas_dynamic_init(); #endif #if defined(SMP) && defined(OS_LINUX) && !defined(NO_AFFINITY) gotoblas_affinity_init(); #endif #if defined(OS_LINUX) && !defined(NO_WARMUP) gotoblas_memory_init(); #endif #if defined(OS_LINUX) struct rlimit curlimit; if ( getrlimit(RLIMIT_STACK, &curlimit ) == 0 ) { if ( curlimit.rlim_cur != curlimit.rlim_max ) { curlimit.rlim_cur = curlimit.rlim_max; setrlimit(RLIMIT_STACK, &curlimit); } } #endif #ifdef SMP if (blas_cpu_number == 0) blas_get_cpu_number(); #ifdef SMP_SERVER if (blas_server_avail == 0) blas_thread_init(); #endif #endif #ifdef FUNCTION_PROFILE gotoblas_profile_init(); #endif gotoblas_initialized = 1; #ifdef PROFILE moncontrol (1); #endif }
void CONSTRUCTOR gotoblas_init(void) { if (gotoblas_initialized) return; #ifdef PROFILE moncontrol (0); #endif #ifdef DYNAMIC_ARCH gotoblas_dynamic_init(); #endif #if defined(SMP) && defined(OS_LINUX) && !defined(NO_AFFINITY) gotoblas_affinity_init(); #endif #if defined(OS_LINUX) && !defined(NO_WARMUP) gotoblas_memory_init(); #endif #ifdef SMP if (blas_cpu_number == 0) blas_get_cpu_number(); #ifdef SMP_SERVER if (blas_server_avail == 0) blas_thread_init(); #endif #endif #ifdef FUNCTION_PROFILE gotoblas_profile_init(); #endif gotoblas_initialized = 1; #ifdef PROFILE moncontrol (1); #endif }