# # Beginning of user configuration # # This library's version VERSION = 0.3.13.dev # If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a # and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library # is libopenblas_$(LIBNAMESUFFIX).so.0. # LIBNAMESUFFIX = omp # You can specify the target architecture, otherwise it's # automatically detected. # TARGET = PENRYN # If you want to support multiple architecture in one binary # DYNAMIC_ARCH = 1 # If you want the full list of x86_64 architectures supported in DYNAMIC_ARCH # mode (including individual optimizied codes for PENRYN, DUNNINGTON, OPTERON, # OPTERON_SSE3, ATOM and NANO rather than fallbacks to older architectures) # DYNAMIC_OLDER = 1 # C compiler including binary type(32bit / 64bit). Default is gcc. # Don't use Intel Compiler or PGI, it won't generate right codes as I expect. # CC = gcc # Fortran compiler. Default is g77. # FC = gfortran # Even you can specify cross compiler. Meanwhile, please set HOSTCC. # cross compiler for Windows # CC = x86_64-w64-mingw32-gcc # FC = x86_64-w64-mingw32-gfortran # cross compiler for 32bit ARM # CC = arm-linux-gnueabihf-gcc # FC = arm-linux-gnueabihf-gfortran # cross compiler for 64bit ARM # CC = aarch64-linux-gnu-gcc # FC = aarch64-linux-gnu-gfortran # If you use the cross compiler, please set this host compiler. # HOSTCC = gcc # If you need 32bit binary, define BINARY=32, otherwise define BINARY=64 # Please note that AVX is not available on 32-bit. # Setting BINARY=32 disables AVX/AVX2/AVX-512. # BINARY=64 # About threaded BLAS. It will be automatically detected if you don't # specify it. # For force setting for single threaded, specify USE_THREAD = 0 # For force setting for multi threaded, specify USE_THREAD = 1 # USE_THREAD = 0 # If you want to build a single-threaded OpenBLAS, but expect to call this # from several concurrent threads in some other program, comment this in for # thread safety. (This is done automatically for USE_THREAD=1 , and should not # be necessary when USE_OPENMP=1) # USE_LOCKING = 1 # If you're going to use this library with OpenMP, please comment it in. # This flag is always set for POWER8. Don't set USE_OPENMP = 0 if you're targeting POWER8. # USE_OPENMP = 1 # The OpenMP scheduler to use - by default this is "static" and you # will normally not want to change this unless you know that your main # workload will involve tasks that have highly unbalanced running times # for individual threads. Changing away from "static" may also adversely # affect memory access locality in NUMA systems. Setting to "runtime" will # allow you to select the scheduler from the environment variable OMP_SCHEDULE # CCOMMON_OPT += -DOMP_SCHED=dynamic # You can define the maximum number of threads. Basically it should be less # than or equal to the number of CPU threads. If you don't specify one, it's # automatically detected by the build system. # If SMT (aka. HT) is enabled on the system, it may or may not be beneficial to # restrict NUM_THREADS to the number of physical cores. By default, the automatic # detection includes logical CPUs, thus allowing the use of SMT. # Users may opt at runtime to use less than NUM_THREADS threads. # # Note for package maintainers: you can build OpenBLAS with a large NUM_THREADS # value (eg. 32-256) if you expect your users to use that many threads. Due to the way # some internal structures are allocated, using a large NUM_THREADS value has a RAM # footprint penalty, even if users reduce the actual number of threads at runtime. # NUM_THREADS = 24 # If you have enabled USE_OPENMP and your application would call # OpenBLAS's calculation API from multiple threads, please comment this in. # This flag defines how many instances of OpenBLAS's calculation API can actually # run in parallel. If more than NUM_PARALLEL threads call OpenBLAS's calculation API, # they need to wait for the preceding API calls to finish or risk data corruption. # NUM_PARALLEL = 2 # When multithreading, OpenBLAS needs to use a memory buffer for communicating # and collating results for individual subranges of the original matrix. Since # the original GotoBLAS of the early 2000s, the default size of this buffer has # been set at a value of 32<<20 (which is 32MB) on x86_64 , twice that on PPC. # If you expect to handle large problem sizes (beyond about 30000x30000) uncomment # this line and adjust the (32<