Merge branch 'develop' of github.com:xianyi/OpenBLAS into loongson3b

This commit is contained in:
Xianyi Zhang 2011-11-09 19:08:29 +00:00
commit 3bbe3ddb31
29 changed files with 276 additions and 116 deletions

View File

@ -1,4 +1,29 @@
OpenBLAS ChangeLog OpenBLAS ChangeLog
====================================================================
Version 0.1 alpha2.4
18-Sep-2011
common:
* Fixed a bug about installation. The header file "fblas77.h"
works fine now.
* Fixed #61 a building bug about setting TARGET and DYNAMIC_ARCH.
* Try to handle absolute path of shared library in OSX. (#57)
Thank Dr Kane O'Donnell.
* Changed the installation folder layout to $(PREFIX)/include and
$(PREFIX)/lib
x86/x86_64:
* Fixed #58 zdot/xdot SEGFAULT bug with GCC-4.6 on x86. According
to i386 calling convention, The callee should remove the first
hidden parameter.Thank Mr. John for this patch.
====================================================================
Version 0.1 alpha2.3
5-Sep-2011
x86/x86_64:
* Added DTB_ENTRIES into dynamic arch setting parameters. Now,
it can read DTB_ENTRIES on runtime. (Refs issue #55 on github)
==================================================================== ====================================================================
Version 0.1 alpha2.2 Version 0.1 alpha2.2
14-Jul-2011 14-Jul-2011

View File

@ -56,6 +56,27 @@ ifndef SMP
else else
@echo " (Multi threaded; Max num-threads is $(NUM_THREADS))" @echo " (Multi threaded; Max num-threads is $(NUM_THREADS))"
endif endif
ifeq ($(USE_OPENMP), 1)
@echo
@echo " Use OpenMP in the multithreading. Becasue of ignoring OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS flags, "
@echo " you should use OMP_NUM_THREADS environment variable to control the number of threads."
@echo
endif
ifeq ($(OSNAME), Darwin)
@echo "WARNING: If you plan to use the dynamic library $(LIBDYNNAME), you must run:"
@echo
@echo "\"make PREFIX=/your_installation_path/ install\"."
@echo
@echo "(or set PREFIX in Makefile.rule and run make install."
@echo "If you want to move the .dylib to a new location later, make sure you change"
@echo "the internal name of the dylib with:"
@echo
@echo "install_name_tool -id /new/absolute/path/to/$(LIBDYNNAME) $(LIBDYNNAME)"
endif
@echo
@echo "To install the library, you can run \"make PREFIX=/path/to/your/installation install\"."
@echo @echo
shared : shared :

View File

@ -3,6 +3,9 @@ export GOTOBLAS_MAKEFILE = 1
-include $(TOPDIR)/Makefile.conf_last -include $(TOPDIR)/Makefile.conf_last
include ./Makefile.system include ./Makefile.system
OPENBLAS_INCLUDE_DIR:=$(PREFIX)/include
OPENBLAS_LIBRARY_DIR:=$(PREFIX)/lib
.PHONY : install .PHONY : install
.NOTPARALLEL : install .NOTPARALLEL : install
@ -11,54 +14,57 @@ lib.grd :
install : lib.grd install : lib.grd
@-mkdir -p $(PREFIX) @-mkdir -p $(PREFIX)
@echo Generating openblas_config.h in $(PREFIX) @-mkdir -p $(OPENBLAS_INCLUDE_DIR)
@-mkdir -p $(OPENBLAS_LIBRARY_DIR)
@echo Generating openblas_config.h in $(OPENBLAS_INCLUDE_DIR)
#for inc #for inc
@echo \#ifndef OPENBLAS_CONFIG_H > $(PREFIX)/openblas_config.h @echo \#ifndef OPENBLAS_CONFIG_H > $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
@echo \#define OPENBLAS_CONFIG_H >> $(PREFIX)/openblas_config.h @echo \#define OPENBLAS_CONFIG_H >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
@cat config_last.h >> $(PREFIX)/openblas_config.h @cat config_last.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
@echo \#define VERSION \" OpenBLAS $(VERSION) \" >> $(PREFIX)/openblas_config.h @echo \#define VERSION \" OpenBLAS $(VERSION) \" >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
@cat openblas_config_template.h >> $(PREFIX)/openblas_config.h @cat openblas_config_template.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
@echo \#endif >> $(PREFIX)/openblas_config.h @echo \#endif >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
@echo Generating f77blas.h in $(PREFIX) @echo Generating f77blas.h in $(OPENBLAS_INCLUDE_DIR)
@echo \#ifndef OPENBLAS_F77BLAS_H > $(PREFIX)/f77blas.h @echo \#ifndef OPENBLAS_F77BLAS_H > $(OPENBLAS_INCLUDE_DIR)/f77blas.h
@echo \#define OPENBLAS_F77BLAS_H >> $(PREFIX)/f77blas.h @echo \#define OPENBLAS_F77BLAS_H >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
@echo \#include \"openblas_config.h\" >> $(PREFIX)/f77blas.h @echo \#include \"openblas_config.h\" >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
@cat common_interface.h >> $(PREFIX)/f77blas.h @cat common_interface.h >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
@echo \#endif >> $(PREFIX)/f77blas.h @echo \#endif >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
@echo Generating cblas.h in $(PREFIX) @echo Generating cblas.h in $(OPENBLAS_INCLUDE_DIR)
@sed 's/common/openblas_config/g' cblas.h > $(PREFIX)/cblas.h @sed 's/common/openblas_config/g' cblas.h > $(OPENBLAS_INCLUDE_DIR)/cblas.h
#for install static library #for install static library
@echo Copy the static library to $(PREFIX) @echo Copy the static library to $(OPENBLAS_LIBRARY_DIR)
@cp $(LIBNAME) $(PREFIX) @cp $(LIBNAME) $(OPENBLAS_LIBRARY_DIR)
@-ln -fs $(PREFIX)/$(LIBNAME) $(PREFIX)/libopenblas.$(LIBSUFFIX) @-ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBNAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.$(LIBSUFFIX)
#for install shared library #for install shared library
@echo Copy the shared library to $(PREFIX) @echo Copy the shared library to $(OPENBLAS_LIBRARY_DIR)
ifeq ($(OSNAME), Linux) ifeq ($(OSNAME), Linux)
-cp $(LIBSONAME) $(PREFIX) -cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
-ln -fs $(PREFIX)/$(LIBSONAME) $(PREFIX)/libopenblas.so -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.so
endif endif
ifeq ($(OSNAME), FreeBSD) ifeq ($(OSNAME), FreeBSD)
-cp $(LIBSONAME) $(PREFIX) -cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
-ln -fs $(PREFIX)/$(LIBSONAME) $(PREFIX)/libopenblas.so -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.so
endif endif
ifeq ($(OSNAME), NetBSD) ifeq ($(OSNAME), NetBSD)
-cp $(LIBSONAME) $(PREFIX) -cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
-ln -fs $(PREFIX)/$(LIBSONAME) $(PREFIX)/libopenblas.so -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.so
endif endif
ifeq ($(OSNAME), Darwin) ifeq ($(OSNAME), Darwin)
-cp $(LIBDYNNAME) $(PREFIX) -cp $(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)
-ln -fs $(PREFIX)/$(LIBDYNNAME) $(PREFIX)/libopenblas.dylib -install_name_tool -id $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)
-ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.dylib
endif endif
ifeq ($(OSNAME), WINNT) ifeq ($(OSNAME), WINNT)
-cp $(LIBDLLNAME) $(PREFIX) -cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)
-ln -fs $(PREFIX)/$(LIBDLLNAME) $(PREFIX)/libopenblas.dll -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.dll
endif endif
ifeq ($(OSNAME), CYGWIN_NT) ifeq ($(OSNAME), CYGWIN_NT)
-cp $(LIBDLLNAME) $(PREFIX) -cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)
-ln -fs $(PREFIX)/$(LIBDLLNAME) $(PREFIX)/libopenblas.dll -ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)/libopenblas.dll
endif endif
@echo Install OK! @echo Install OK!

View File

@ -3,7 +3,7 @@
# #
# This library's version # This library's version
VERSION = 0.1alpha2.2 VERSION = 0.1alpha2.4
# You can specify the target architecture, otherwise it's # You can specify the target architecture, otherwise it's
# automatically detected. # automatically detected.

View File

@ -27,7 +27,13 @@ HOSTCC = $(CC)
endif endif
ifdef TARGET ifdef TARGET
GETARCH_FLAGS += -DFORCE_$(TARGET) GETARCH_FLAGS := -DFORCE_$(TARGET)
endif
#TARGET_CORE will override TARGET which is used in DYNAMIC_ARCH=1.
#
ifdef TARGET_CORE
GETARCH_FLAGS := -DFORCE_$(TARGET_CORE)
endif endif
ifdef INTERFACE64 ifdef INTERFACE64

2
README
View File

@ -48,7 +48,7 @@ export OMP_NUM_THREADS=4
The priorities are OPENBLAS_NUM_THREADS > GOTO_NUM_THREADS > OMP_NUM_THREADS. The priorities are OPENBLAS_NUM_THREADS > GOTO_NUM_THREADS > OMP_NUM_THREADS.
If you compile this lib with USE_OPENMP=1, you should only set OMP_NUM_THREADS environment variable. If you compile this lib with USE_OPENMP=1, you should set OMP_NUM_THREADS environment variable. OpenBLAS ignores OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS with USE_OPENMP=1.
4.2 Set the number of threads with calling functions. for example, 4.2 Set the number of threads with calling functions. for example,
void goto_set_num_threads(int num_threads); void goto_set_num_threads(int num_threads);

View File

@ -44,6 +44,7 @@
#ifdef DYNAMIC_ARCH #ifdef DYNAMIC_ARCH
typedef struct { typedef struct {
int dtb_entries;
int offsetA, offsetB, align; int offsetA, offsetB, align;
int sgemm_p, sgemm_q, sgemm_r; int sgemm_p, sgemm_q, sgemm_r;
@ -813,6 +814,7 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
extern gotoblas_t *gotoblas; extern gotoblas_t *gotoblas;
#define DTB_ENTRIES gotoblas -> dtb_entries
#define GEMM_OFFSET_A gotoblas -> offsetA #define GEMM_OFFSET_A gotoblas -> offsetA
#define GEMM_OFFSET_B gotoblas -> offsetB #define GEMM_OFFSET_B gotoblas -> offsetB
#define GEMM_ALIGN gotoblas -> align #define GEMM_ALIGN gotoblas -> align
@ -863,6 +865,8 @@ extern gotoblas_t *gotoblas;
#else #else
#define DTB_ENTRIES DTB_DEFAULT_ENTRIES
#define GEMM_OFFSET_A GEMM_DEFAULT_OFFSET_A #define GEMM_OFFSET_A GEMM_DEFAULT_OFFSET_A
#define GEMM_OFFSET_B GEMM_DEFAULT_OFFSET_B #define GEMM_OFFSET_B GEMM_DEFAULT_OFFSET_B
#define GEMM_ALIGN GEMM_DEFAULT_ALIGN #define GEMM_ALIGN GEMM_DEFAULT_ALIGN
@ -997,14 +1001,14 @@ extern gotoblas_t *gotoblas;
#endif #endif
#ifdef XDOUBLE #ifdef XDOUBLE
#define GEMM3M_UNROLL_M QGEMM_DEFAULT_UNROLL_M #define GEMM3M_UNROLL_M QGEMM_UNROLL_M
#define GEMM3M_UNROLL_N QGEMM_DEFAULT_UNROLL_N #define GEMM3M_UNROLL_N QGEMM_UNROLL_N
#elif defined(DOUBLE) #elif defined(DOUBLE)
#define GEMM3M_UNROLL_M DGEMM_DEFAULT_UNROLL_M #define GEMM3M_UNROLL_M DGEMM_UNROLL_M
#define GEMM3M_UNROLL_N DGEMM_DEFAULT_UNROLL_N #define GEMM3M_UNROLL_N DGEMM_UNROLL_N
#else #else
#define GEMM3M_UNROLL_M SGEMM_DEFAULT_UNROLL_M #define GEMM3M_UNROLL_M SGEMM_UNROLL_M
#define GEMM3M_UNROLL_N SGEMM_DEFAULT_UNROLL_N #define GEMM3M_UNROLL_N SGEMM_UNROLL_N
#endif #endif

View File

@ -39,6 +39,11 @@
#ifndef COMMON_THREAD #ifndef COMMON_THREAD
#define COMMON_THREAD #define COMMON_THREAD
#ifdef USE_OPENMP
#include <omp.h>
extern void goto_set_num_threads(int nthreads);
#endif
/* Basic Thread Debugging */ /* Basic Thread Debugging */
#undef SMP_DEBUG #undef SMP_DEBUG
@ -126,6 +131,10 @@ extern int blas_server_avail;
static __inline int num_cpu_avail(int level) { static __inline int num_cpu_avail(int level) {
#ifdef USE_OPENMP
int openmp_nthreads=0;
#endif
if ((blas_cpu_number == 1) if ((blas_cpu_number == 1)
#ifdef USE_OPENMP #ifdef USE_OPENMP
@ -133,6 +142,13 @@ static __inline int num_cpu_avail(int level) {
#endif #endif
) return 1; ) return 1;
#ifdef USE_OPENMP
openmp_nthreads=omp_get_max_threads();
if (blas_cpu_number != openmp_nthreads) {
goto_set_num_threads(openmp_nthreads);
}
#endif
return blas_cpu_number; return blas_cpu_number;
} }

View File

@ -72,7 +72,7 @@ void get_cpuconfig(void){
printf("#define L1_DATA_LINESIZE 32\n"); printf("#define L1_DATA_LINESIZE 32\n");
printf("#define L2_SIZE 2097152\n"); printf("#define L2_SIZE 2097152\n");
printf("#define L2_LINESIZE 32\n"); printf("#define L2_LINESIZE 32\n");
printf("#define DTB_ENTRIES 32\n"); printf("#define DTB_DEFAULT_ENTRIES 32\n");
printf("#define DTB_SIZE 8192\n"); printf("#define DTB_SIZE 8192\n");
break; break;
@ -81,7 +81,7 @@ void get_cpuconfig(void){
printf("#define L1_DATA_LINESIZE 32\n"); printf("#define L1_DATA_LINESIZE 32\n");
printf("#define L2_SIZE 2097152\n"); printf("#define L2_SIZE 2097152\n");
printf("#define L2_LINESIZE 64\n"); printf("#define L2_LINESIZE 64\n");
printf("#define DTB_ENTRIES 64\n"); printf("#define DTB_DEFAULT_ENTRIES 64\n");
printf("#define DTB_SIZE 8192\n"); printf("#define DTB_SIZE 8192\n");
break; break;
@ -90,7 +90,7 @@ void get_cpuconfig(void){
printf("#define L1_DATA_LINESIZE 64\n"); printf("#define L1_DATA_LINESIZE 64\n");
printf("#define L2_SIZE 4194304\n"); printf("#define L2_SIZE 4194304\n");
printf("#define L2_LINESIZE 64\n"); printf("#define L2_LINESIZE 64\n");
printf("#define DTB_ENTRIES 64\n"); printf("#define DTB_DEFAULT_ENTRIES 64\n");
printf("#define DTB_SIZE 8192\n"); printf("#define DTB_SIZE 8192\n");
break; break;
} }

View File

@ -133,6 +133,6 @@ void get_cpuconfig(void){
printf("#define L2_SIZE 1572864\n"); printf("#define L2_SIZE 1572864\n");
printf("#define L2_LINESIZE 128\n"); printf("#define L2_LINESIZE 128\n");
printf("#define DTB_SIZE 16384\n"); printf("#define DTB_SIZE 16384\n");
printf("#define DTB_ENTRIES 128\n"); printf("#define DTB_DEFAULT_ENTRIES 128\n");
} }

View File

@ -146,7 +146,7 @@ void get_cpuconfig(void){
printf("#define L1_DATA_LINESIZE 32\n"); printf("#define L1_DATA_LINESIZE 32\n");
printf("#define L2_SIZE 512488\n"); printf("#define L2_SIZE 512488\n");
printf("#define L2_LINESIZE 32\n"); printf("#define L2_LINESIZE 32\n");
printf("#define DTB_ENTRIES 64\n"); printf("#define DTB_DEFAULT_ENTRIES 64\n");
printf("#define DTB_SIZE 4096\n"); printf("#define DTB_SIZE 4096\n");
printf("#define L2_ASSOCIATIVE 4\n"); printf("#define L2_ASSOCIATIVE 4\n");
}else{ }else{
@ -155,7 +155,7 @@ void get_cpuconfig(void){
printf("#define L1_DATA_LINESIZE 32\n"); printf("#define L1_DATA_LINESIZE 32\n");
printf("#define L2_SIZE 512488\n"); printf("#define L2_SIZE 512488\n");
printf("#define L2_LINESIZE 32\n"); printf("#define L2_LINESIZE 32\n");
printf("#define DTB_ENTRIES 32\n"); printf("#define DTB_DEFAULT_ENTRIES 32\n");
printf("#define DTB_SIZE 4096\n"); printf("#define DTB_SIZE 4096\n");
printf("#define L2_ASSOCIATIVE 8\n"); printf("#define L2_ASSOCIATIVE 8\n");
} }

View File

@ -165,7 +165,7 @@ void get_cpuconfig(void){
printf("#define L1_DATA_LINESIZE 128\n"); printf("#define L1_DATA_LINESIZE 128\n");
printf("#define L2_SIZE 524288\n"); printf("#define L2_SIZE 524288\n");
printf("#define L2_LINESIZE 128 \n"); printf("#define L2_LINESIZE 128 \n");
printf("#define DTB_ENTRIES 128\n"); printf("#define DTB_DEFAULT_ENTRIES 128\n");
printf("#define DTB_SIZE 4096\n"); printf("#define DTB_SIZE 4096\n");
printf("#define L2_ASSOCIATIVE 8\n"); printf("#define L2_ASSOCIATIVE 8\n");

View File

@ -50,7 +50,7 @@ void get_subdirname(void){
void get_cpuconfig(void){ void get_cpuconfig(void){
printf("#define V9\n"); printf("#define V9\n");
printf("#define DTB_ENTRIES 32\n"); printf("#define DTB_DEFAULT_ENTRIES 32\n");
} }
void get_libname(void){ void get_libname(void){

View File

@ -1393,7 +1393,7 @@ void get_cpuconfig(void){
if (info.size > 0) { if (info.size > 0) {
printf("#define DTB_SIZE %d\n", info.size * 1024); printf("#define DTB_SIZE %d\n", info.size * 1024);
printf("#define DTB_ASSOCIATIVE %d\n", info.associative); printf("#define DTB_ASSOCIATIVE %d\n", info.associative);
printf("#define DTB_ENTRIES %d\n", info.linesize); printf("#define DTB_DEFAULT_ENTRIES %d\n", info.linesize);
} }
features = get_cputype(GET_FEATURE); features = get_cputype(GET_FEATURE);
@ -1422,7 +1422,7 @@ void get_cpuconfig(void){
features = get_coretype(); features = get_coretype();
if (features > 0) printf("#define CORE_%s\n", corename[features]); if (features > 0) printf("#define CORE_%s\n", corename[features]);
} else { } else {
printf("#define DTB_ENTRIES 16\n"); printf("#define DTB_DEFAULT_ENTRIES 16\n");
printf("#define L1_CODE_SIZE 8192\n"); printf("#define L1_CODE_SIZE 8192\n");
printf("#define L1_DATA_SIZE 8192\n"); printf("#define L1_DATA_SIZE 8192\n");
printf("#define L2_SIZE 0\n"); printf("#define L2_SIZE 0\n");

View File

@ -36,22 +36,43 @@ ztestl3o = c_zblas3.o c_z3chke.o auxiliary.o c_xerbla.o constant.o
all :: all1 all2 all3 all :: all1 all2 all3
all1: xscblat1 xdcblat1 xccblat1 xzcblat1 all1: xscblat1 xdcblat1 xccblat1 xzcblat1
ifeq ($(USE_OPENMP), 1)
OMP_NUM_THREADS=2 ./xscblat1
OMP_NUM_THREADS=2 ./xdcblat1
OMP_NUM_THREADS=2 ./xccblat1
OMP_NUM_THREADS=2 ./xzcblat1
else
OPENBLAS_NUM_THREADS=2 ./xscblat1 OPENBLAS_NUM_THREADS=2 ./xscblat1
OPENBLAS_NUM_THREADS=2 ./xdcblat1 OPENBLAS_NUM_THREADS=2 ./xdcblat1
OPENBLAS_NUM_THREADS=2 ./xccblat1 OPENBLAS_NUM_THREADS=2 ./xccblat1
OPENBLAS_NUM_THREADS=2 ./xzcblat1 OPENBLAS_NUM_THREADS=2 ./xzcblat1
endif
all2: xscblat2 xdcblat2 xccblat2 xzcblat2 all2: xscblat2 xdcblat2 xccblat2 xzcblat2
ifeq ($(USE_OPENMP), 1)
OMP_NUM_THREADS=2 ./xscblat2 < sin2
OMP_NUM_THREADS=2 ./xdcblat2 < din2
OMP_NUM_THREADS=2 ./xccblat2 < cin2
OMP_NUM_THREADS=2 ./xzcblat2 < zin2
else
OPENBLAS_NUM_THREADS=2 ./xscblat2 < sin2 OPENBLAS_NUM_THREADS=2 ./xscblat2 < sin2
OPENBLAS_NUM_THREADS=2 ./xdcblat2 < din2 OPENBLAS_NUM_THREADS=2 ./xdcblat2 < din2
OPENBLAS_NUM_THREADS=2 ./xccblat2 < cin2 OPENBLAS_NUM_THREADS=2 ./xccblat2 < cin2
OPENBLAS_NUM_THREADS=2 ./xzcblat2 < zin2 OPENBLAS_NUM_THREADS=2 ./xzcblat2 < zin2
endif
all3: xscblat3 xdcblat3 xccblat3 xzcblat3 all3: xscblat3 xdcblat3 xccblat3 xzcblat3
ifeq ($(USE_OPENMP), 1)
OMP_NUM_THREADS=2 ./xscblat3 < sin3
OMP_NUM_THREADS=2 ./xdcblat3 < din3
OMP_NUM_THREADS=2 ./xccblat3 < cin3
OMP_NUM_THREADS=2 ./xzcblat3 < zin3
else
OPENBLAS_NUM_THREADS=2 ./xscblat3 < sin3 OPENBLAS_NUM_THREADS=2 ./xscblat3 < sin3
OPENBLAS_NUM_THREADS=2 ./xdcblat3 < din3 OPENBLAS_NUM_THREADS=2 ./xdcblat3 < din3
OPENBLAS_NUM_THREADS=2 ./xccblat3 < cin3 OPENBLAS_NUM_THREADS=2 ./xccblat3 < cin3
OPENBLAS_NUM_THREADS=2 ./xzcblat3 < zin3 OPENBLAS_NUM_THREADS=2 ./xzcblat3 < zin3
endif
clean :: clean ::
rm -f x* rm -f x*

View File

@ -66,7 +66,7 @@ ifeq ($(BINARY32), 1)
-lib /machine:i386 /def:libgoto2.def -lib /machine:i386 /def:libgoto2.def
else else
$(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \ $(DLLWRAP) -o ../$(LIBDLLNAME) --def libgoto2.def \
--entry _dllinit -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB) --entry $(FU)dllinit -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
-lib /machine:X64 /def:libgoto2.def -lib /machine:X64 /def:libgoto2.def
endif endif
@ -85,7 +85,7 @@ libgoto_hpl.def : gensymbol
perl ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) > $(@F) perl ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) $(NO_LAPACK) > $(@F)
$(LIBDYNNAME) : ../$(LIBNAME) osx.def $(LIBDYNNAME) : ../$(LIBNAME) osx.def
$(PREFIX)gcc $(CFLAGS) -all_load -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def $(FEXTRALIB) $(CC) $(CFLAGS) -all_load -headerpad_max_install_names -install_name $(CURDIR)/../$(LIBDYNNAME) -dynamiclib -o ../$(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def $(FEXTRALIB)
symbol.$(SUFFIX) : symbol.S symbol.$(SUFFIX) : symbol.S
$(CC) $(CFLAGS) -c -o $(@F) $^ $(CC) $(CFLAGS) -c -o $(@F) $^

View File

@ -130,7 +130,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENTIUM2 " \ #define ARCHCONFIG "-DPENTIUM2 " \
"-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX" "-DHAVE_CMOV -DHAVE_MMX"
#define LIBNAME "p2" #define LIBNAME "p2"
#define CORENAME "P5" #define CORENAME "P5"
@ -144,7 +144,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENTIUM3 " \ #define ARCHCONFIG "-DPENTIUM3 " \
"-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=262144 -DL2_LINESIZE=32 " \ "-DL2_SIZE=262144 -DL2_LINESIZE=32 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE " "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE "
#define LIBNAME "coppermine" #define LIBNAME "coppermine"
#define CORENAME "COPPERMINE" #define CORENAME "COPPERMINE"
@ -158,7 +158,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENTIUM3 " \ #define ARCHCONFIG "-DPENTIUM3 " \
"-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=524288 -DL2_LINESIZE=32 " \ "-DL2_SIZE=524288 -DL2_LINESIZE=32 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE " "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE "
#define LIBNAME "katmai" #define LIBNAME "katmai"
#define CORENAME "KATMAI" #define CORENAME "KATMAI"
@ -172,7 +172,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENTIUM4 " \ #define ARCHCONFIG "-DPENTIUM4 " \
"-DL1_DATA_SIZE=8192 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=8192 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=524288 -DL2_LINESIZE=64 " \ "-DL2_SIZE=524288 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 " "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 "
#define LIBNAME "northwood" #define LIBNAME "northwood"
#define CORENAME "NORTHWOOD" #define CORENAME "NORTHWOOD"
@ -186,7 +186,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENTIUM4 " \ #define ARCHCONFIG "-DPENTIUM4 " \
"-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3"
#define LIBNAME "prescott" #define LIBNAME "prescott"
#define CORENAME "PRESCOTT" #define CORENAME "PRESCOTT"
@ -200,7 +200,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENTIUMM " \ #define ARCHCONFIG "-DPENTIUMM " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 " "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 "
#define LIBNAME "banias" #define LIBNAME "banias"
#define CORENAME "BANIAS" #define CORENAME "BANIAS"
@ -214,7 +214,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENTIUMM " \ #define ARCHCONFIG "-DPENTIUMM " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 " "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 "
#define LIBNAME "yonah" #define LIBNAME "yonah"
#define CORENAME "YONAH" #define CORENAME "YONAH"
@ -228,7 +228,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DCORE2 " \ #define ARCHCONFIG "-DCORE2 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=256 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=256 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3"
#define LIBNAME "core2" #define LIBNAME "core2"
#define CORENAME "CORE2" #define CORENAME "CORE2"
@ -242,7 +242,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPENRYN " \ #define ARCHCONFIG "-DPENRYN " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=256 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=256 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1"
#define LIBNAME "penryn" #define LIBNAME "penryn"
#define CORENAME "PENRYN" #define CORENAME "PENRYN"
@ -257,7 +257,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DL3_SIZE=16777216 -DL3_LINESIZE=64 " \ "-DL3_SIZE=16777216 -DL3_LINESIZE=64 " \
"-DDTB_ENTRIES=256 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=256 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1"
#define LIBNAME "dunnington" #define LIBNAME "dunnington"
#define CORENAME "DUNNINGTON" #define CORENAME "DUNNINGTON"
@ -271,7 +271,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DNEHALEM " \ #define ARCHCONFIG "-DNEHALEM " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=262144 -DL2_LINESIZE=64 " \ "-DL2_SIZE=262144 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2"
#define LIBNAME "nehalem" #define LIBNAME "nehalem"
#define CORENAME "NEHALEM" #define CORENAME "NEHALEM"
@ -285,7 +285,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DATOM " \ #define ARCHCONFIG "-DATOM " \
"-DL1_DATA_SIZE=24576 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=24576 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=524288 -DL2_LINESIZE=64 " \ "-DL2_SIZE=524288 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3"
#define LIBNAME "atom" #define LIBNAME "atom"
#define CORENAME "ATOM" #define CORENAME "ATOM"
@ -299,7 +299,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DATHLON " \ #define ARCHCONFIG "-DATHLON " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=32 -DDTB_SIZE=4096 -DHAVE_3DNOW " \ "-DDTB_DEFAULT_ENTRIES=32 -DDTB_SIZE=4096 -DHAVE_3DNOW " \
"-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE " "-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE "
#define LIBNAME "athlon" #define LIBNAME "athlon"
#define CORENAME "ATHLON" #define CORENAME "ATHLON"
@ -313,7 +313,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DOPTERON " \ #define ARCHCONFIG "-DOPTERON " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=32 -DDTB_SIZE=4096 -DHAVE_3DNOW " \ "-DDTB_DEFAULT_ENTRIES=32 -DDTB_SIZE=4096 -DHAVE_3DNOW " \
"-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 " "-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 "
#define LIBNAME "opteron" #define LIBNAME "opteron"
#define CORENAME "OPTERON" #define CORENAME "OPTERON"
@ -327,7 +327,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DOPTERON " \ #define ARCHCONFIG "-DOPTERON " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=32 -DDTB_SIZE=4096 -DHAVE_3DNOW " \ "-DDTB_DEFAULT_ENTRIES=32 -DDTB_SIZE=4096 -DHAVE_3DNOW " \
"-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3" "-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3"
#define LIBNAME "opteron" #define LIBNAME "opteron"
#define CORENAME "OPTERON" #define CORENAME "OPTERON"
@ -341,7 +341,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DBARCELONA " \ #define ARCHCONFIG "-DBARCELONA " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=524288 -DL2_LINESIZE=64 -DL3_SIZE=2097152 " \ "-DL2_SIZE=524288 -DL2_LINESIZE=64 -DL3_SIZE=2097152 " \
"-DDTB_ENTRIES=48 -DDTB_SIZE=4096 -DHAVE_3DNOW " \ "-DDTB_DEFAULT_ENTRIES=48 -DDTB_SIZE=4096 -DHAVE_3DNOW " \
"-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 " \ "-DHAVE_3DNOWEX -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 " \
"-DHAVE_SSE4A -DHAVE_MISALIGNSSE -DHAVE_128BITFPU -DHAVE_FASTMOVU" "-DHAVE_SSE4A -DHAVE_MISALIGNSSE -DHAVE_128BITFPU -DHAVE_FASTMOVU"
#define LIBNAME "barcelona" #define LIBNAME "barcelona"
@ -356,7 +356,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DGENERIC " \ #define ARCHCONFIG "-DGENERIC " \
"-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=16384 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=524288 -DL2_LINESIZE=64 " \ "-DL2_SIZE=524288 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \ "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2"
#define LIBNAME "generic" #define LIBNAME "generic"
#define CORENAME "GENERIC" #define CORENAME "GENERIC"
@ -370,7 +370,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DVIAC3 " \ #define ARCHCONFIG "-DVIAC3 " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=65536 -DL2_LINESIZE=32 " \ "-DL2_SIZE=65536 -DL2_LINESIZE=32 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 " \ "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 " \
"-DHAVE_MMX -DHAVE_SSE " "-DHAVE_MMX -DHAVE_SSE "
#define LIBNAME "viac3" #define LIBNAME "viac3"
#define CORENAME "VIAC3" #define CORENAME "VIAC3"
@ -384,7 +384,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DNANO " \ #define ARCHCONFIG "-DNANO " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \ "-DL2_SIZE=1048576 -DL2_LINESIZE=64 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \ "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " \
"-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3" "-DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3"
#define LIBNAME "nano" #define LIBNAME "nano"
#define CORENAME "NANO" #define CORENAME "NANO"
@ -398,7 +398,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPOWER3 " \ #define ARCHCONFIG "-DPOWER3 " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=2097152 -DL2_LINESIZE=128 " \ "-DL2_SIZE=2097152 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=256 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=256 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "power3" #define LIBNAME "power3"
#define CORENAME "POWER3" #define CORENAME "POWER3"
#endif #endif
@ -411,7 +411,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPOWER4 " \ #define ARCHCONFIG "-DPOWER4 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=1509949 -DL2_LINESIZE=128 " \ "-DL2_SIZE=1509949 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=6 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=6 "
#define LIBNAME "power4" #define LIBNAME "power4"
#define CORENAME "POWER4" #define CORENAME "POWER4"
#endif #endif
@ -424,7 +424,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPOWER5 " \ #define ARCHCONFIG "-DPOWER5 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=1509949 -DL2_LINESIZE=128 " \ "-DL2_SIZE=1509949 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=6 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=6 "
#define LIBNAME "power5" #define LIBNAME "power5"
#define CORENAME "POWER5" #define CORENAME "POWER5"
#endif #endif
@ -437,7 +437,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPOWER6 " \ #define ARCHCONFIG "-DPOWER6 " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=4194304 -DL2_LINESIZE=128 " \ "-DL2_SIZE=4194304 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "power6" #define LIBNAME "power6"
#define CORENAME "POWER6" #define CORENAME "POWER6"
#endif #endif
@ -450,7 +450,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPPCG4 " \ #define ARCHCONFIG "-DPPCG4 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=262144 -DL2_LINESIZE=32 " \ "-DL2_SIZE=262144 -DL2_LINESIZE=32 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "ppcg4" #define LIBNAME "ppcg4"
#define CORENAME "PPCG4" #define CORENAME "PPCG4"
#endif #endif
@ -463,7 +463,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPPC970 " \ #define ARCHCONFIG "-DPPC970 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=512488 -DL2_LINESIZE=128 " \ "-DL2_SIZE=512488 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "ppc970" #define LIBNAME "ppc970"
#define CORENAME "PPC970" #define CORENAME "PPC970"
#endif #endif
@ -476,7 +476,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPPC970 " \ #define ARCHCONFIG "-DPPC970 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=1024976 -DL2_LINESIZE=128 " \ "-DL2_SIZE=1024976 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "ppc970mp" #define LIBNAME "ppc970mp"
#define CORENAME "PPC970" #define CORENAME "PPC970"
#endif #endif
@ -489,7 +489,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPPC440 " \ #define ARCHCONFIG "-DPPC440 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=16384 -DL2_LINESIZE=128 " \ "-DL2_SIZE=16384 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 " "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 "
#define LIBNAME "ppc440" #define LIBNAME "ppc440"
#define CORENAME "PPC440" #define CORENAME "PPC440"
#endif #endif
@ -502,7 +502,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DPPC440FP2 " \ #define ARCHCONFIG "-DPPC440FP2 " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=16384 -DL2_LINESIZE=128 " \ "-DL2_SIZE=16384 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 " "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=16 "
#define LIBNAME "ppc440FP2" #define LIBNAME "ppc440FP2"
#define CORENAME "PPC440FP2" #define CORENAME "PPC440FP2"
#endif #endif
@ -515,7 +515,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DCELL " \ #define ARCHCONFIG "-DCELL " \
"-DL1_DATA_SIZE=262144 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=262144 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=512488 -DL2_LINESIZE=128 " \ "-DL2_SIZE=512488 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "cell" #define LIBNAME "cell"
#define CORENAME "CELL" #define CORENAME "CELL"
#endif #endif
@ -528,7 +528,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DSICORTEX " \ #define ARCHCONFIG "-DSICORTEX " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \
"-DDTB_ENTRIES=32 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=32 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "mips" #define LIBNAME "mips"
#define CORENAME "sicortex" #define CORENAME "sicortex"
#endif #endif
@ -542,7 +542,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DLOONGSON3A " \ #define ARCHCONFIG "-DLOONGSON3A " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
"-DL2_SIZE=512488 -DL2_LINESIZE=32 " \ "-DL2_SIZE=512488 -DL2_LINESIZE=32 " \
"-DDTB_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 " "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=4 "
#define LIBNAME "loongson3a" #define LIBNAME "loongson3a"
#define CORENAME "LOONGSON3A" #define CORENAME "LOONGSON3A"
#else #else
@ -555,7 +555,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define SUBDIRNAME "ia64" #define SUBDIRNAME "ia64"
#define ARCHCONFIG "-DITANIUM2 " \ #define ARCHCONFIG "-DITANIUM2 " \
"-DL1_DATA_SIZE=262144 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=262144 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=1572864 -DL2_LINESIZE=128 -DDTB_SIZE=16384 -DDTB_ENTRIES=128 " "-DL2_SIZE=1572864 -DL2_LINESIZE=128 -DDTB_SIZE=16384 -DDTB_DEFAULT_ENTRIES=128 "
#define LIBNAME "itanium2" #define LIBNAME "itanium2"
#define CORENAME "itanium2" #define CORENAME "itanium2"
#endif #endif
@ -567,7 +567,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define SUBDIRNAME "sparc" #define SUBDIRNAME "sparc"
#define ARCHCONFIG "-DSPARC -DV9 " \ #define ARCHCONFIG "-DSPARC -DV9 " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1572864 -DL2_LINESIZE=64 -DDTB_SIZE=8192 -DDTB_ENTRIES=64 " "-DL2_SIZE=1572864 -DL2_LINESIZE=64 -DDTB_SIZE=8192 -DDTB_DEFAULT_ENTRIES=64 "
#define LIBNAME "sparc" #define LIBNAME "sparc"
#define CORENAME "sparc" #define CORENAME "sparc"
#endif #endif
@ -579,7 +579,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define SUBDIRNAME "sparc" #define SUBDIRNAME "sparc"
#define ARCHCONFIG "-DSPARC -DV7 " \ #define ARCHCONFIG "-DSPARC -DV7 " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \ "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 " \
"-DL2_SIZE=1572864 -DL2_LINESIZE=64 -DDTB_SIZE=8192 -DDTB_ENTRIES=64 " "-DL2_SIZE=1572864 -DL2_LINESIZE=64 -DDTB_SIZE=8192 -DDTB_DEFAULT_ENTRIES=64 "
#define LIBNAME "sparcv7" #define LIBNAME "sparcv7"
#define CORENAME "sparcv7" #define CORENAME "sparcv7"
#endif #endif
@ -592,7 +592,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ARCHCONFIG "-DGENERIC " \ #define ARCHCONFIG "-DGENERIC " \
"-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \ "-DL1_DATA_SIZE=32768 -DL1_DATA_LINESIZE=128 " \
"-DL2_SIZE=512488 -DL2_LINESIZE=128 " \ "-DL2_SIZE=512488 -DL2_LINESIZE=128 " \
"-DDTB_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 " "-DDTB_DEFAULT_ENTRIES=128 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
#define LIBNAME "generic" #define LIBNAME "generic"
#define CORENAME "generic" #define CORENAME "generic"
#endif #endif

View File

@ -49,6 +49,8 @@
static void init_parameter(void); static void init_parameter(void);
gotoblas_t TABLE_NAME = { gotoblas_t TABLE_NAME = {
DTB_DEFAULT_ENTRIES ,
GEMM_DEFAULT_OFFSET_A, GEMM_DEFAULT_OFFSET_B, GEMM_DEFAULT_ALIGN, GEMM_DEFAULT_OFFSET_A, GEMM_DEFAULT_OFFSET_B, GEMM_DEFAULT_ALIGN,
0, 0, 0, 0, 0, 0,

View File

@ -48,7 +48,7 @@
#endif #endif
#ifndef P #ifndef P
#define P DTB_ENTRIES #define P DTB_DEFAULT_ENTRIES
#endif #endif
#define STACK 16 #define STACK 16

View File

@ -48,7 +48,7 @@
#endif #endif
#ifndef P #ifndef P
#define P DTB_ENTRIES #define P DTB_DEFAULT_ENTRIES
#endif #endif
#define STACK 16 #define STACK 16

View File

@ -307,7 +307,11 @@
popl %ebx popl %ebx
popl %esi popl %esi
popl %edi popl %edi
#if defined(F_INTERFACE) && defined(RETURN_BY_STACK)
ret $0x4
#else
ret ret
#endif
ALIGN_3 ALIGN_3
.L88: .L88:
@ -326,6 +330,10 @@
popl %ebx popl %ebx
popl %esi popl %esi
popl %edi popl %edi
ret
#if defined(F_INTERFACE) && defined(RETURN_BY_STACK)
ret $0x4
#else
ret
#endif
EPILOGUE EPILOGUE

View File

@ -44,11 +44,11 @@
#endif #endif
#if defined(PENTIUM4) || defined(ATHLON) #if defined(PENTIUM4) || defined(ATHLON)
#define P (DTB_ENTRIES / 2) #define P (DTB_DEFAULT_ENTRIES / 2)
#endif #endif
#ifndef P #ifndef P
#define P DTB_ENTRIES #define P DTB_DEFAULT_ENTRIES
#endif #endif
#define STACK 16 #define STACK 16

View File

@ -283,7 +283,11 @@
popl %ebx popl %ebx
popl %esi popl %esi
popl %edi popl %edi
#if defined(DOUBLE) || defined(XDOUBLE)
ret $0x4
#else
ret ret
#endif
ALIGN_3 ALIGN_3
.L88: .L88:
@ -305,6 +309,10 @@
popl %ebx popl %ebx
popl %esi popl %esi
popl %edi popl %edi
ret
#if defined(DOUBLE) || defined(XDOUBLE)
ret $0x4
#else
ret
#endif
EPILOGUE EPILOGUE

View File

@ -1542,7 +1542,5 @@
popl %esi popl %esi
popl %edi popl %edi
/*remove the hidden return value address from the stack.*/ /*remove the hidden return value address from the stack.*/
popl %ecx ret $0x4
xchgl %ecx, 0(%esp)
ret
EPILOGUE EPILOGUE

View File

@ -44,11 +44,11 @@
#endif #endif
#if defined(PENTIUM4) || defined(ATHLON) #if defined(PENTIUM4) || defined(ATHLON)
#define P ((DTB_ENTRIES) >> 1) #define P ((DTB_DEFAULT_ENTRIES) >> 1)
#endif #endif
#ifndef P #ifndef P
#define P DTB_ENTRIES #define P DTB_DEFAULT_ENTRIES
#endif #endif
#define STACK 16 #define STACK 16

View File

@ -3483,6 +3483,10 @@
subss %xmm3, %xmm1 subss %xmm3, %xmm1
#endif #endif
unpcklps %xmm1, %xmm0 unpcklps %xmm1, %xmm0
#ifdef WINDOWS_ABI
movq %xmm0, %rax
#endif
RESTOREREGISTERS RESTOREREGISTERS

View File

@ -39,14 +39,19 @@
#define ASSEMBLER #define ASSEMBLER
#include "common.h" #include "common.h"
#ifndef WINDOWS_ABI
#define N ARG1 /* rdi */ #define N ARG1 /* rdi */
#define X ARG2 /* rsi */ #define X ARG2 /* rsi */
#define INCX ARG3 /* rdx */ #define INCX ARG3 /* rdx */
#define Y ARG4 /* rcx */ #define Y ARG4 /* rcx */
#ifndef WINDOWS_ABI
#define INCY ARG5 /* r8 */ #define INCY ARG5 /* r8 */
#else #else
#define INCY %r10 #define RESULT_ADDRESS ARG1 /*rcx*/
#define N ARG2 /* rdx */
#define X ARG3 /* r8 */
#define INCX ARG4 /* r9*/
#define Y %r10
#define INCY %r11
#endif #endif
#include "l1param.h" #include "l1param.h"
@ -64,7 +69,8 @@
PROFCODE PROFCODE
#ifdef WINDOWS_ABI #ifdef WINDOWS_ABI
movq 40(%rsp), INCY movq 40(%rsp), Y
movq 48(%rsp), INCY
#endif #endif
SAVEREGISTERS SAVEREGISTERS
@ -1544,6 +1550,12 @@
subsd %xmm3, %xmm1 subsd %xmm3, %xmm1
#endif #endif
#ifdef WINDOWS_ABI
movq RESULT_ADDRESS, %rax
movsd %xmm0, (%rax)
movsd %xmm1, 8(%rax)
#endif
RESTOREREGISTERS RESTOREREGISTERS
ret ret

View File

@ -131,8 +131,8 @@
movq OLD_LDA, LDA movq OLD_LDA, LDA
movq OLD_X, X movq OLD_X, X
movaps %xmm3, %xmm0 movapd %xmm3, %xmm0
movss OLD_ALPHA_I, %xmm1 movsd OLD_ALPHA_I, %xmm1
#endif #endif
movq OLD_INCX, INCX movq OLD_INCX, INCX

View File

@ -4,29 +4,46 @@ include ../Makefile.system
all :: level1 level2 level3 all :: level1 level2 level3
level1 : sblat1 dblat1 cblat1 zblat1 level1 : sblat1 dblat1 cblat1 zblat1
OPENBLAS_NUM_THREADS=1 ./sblat1 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat1
OPENBLAS_NUM_THREADS=1 ./dblat1 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat1
OPENBLAS_NUM_THREADS=1 ./cblat1 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat1
OPENBLAS_NUM_THREADS=1 ./zblat1 OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat1
ifdef SMP ifdef SMP
ifeq ($(USE_OPENMP), 1)
OMP_NUM_THREADS=2 ./sblat1
OMP_NUM_THREADS=2 ./dblat1
OMP_NUM_THREADS=2 ./cblat1
OMP_NUM_THREADS=2 ./zblat1
else
OPENBLAS_NUM_THREADS=2 ./sblat1 OPENBLAS_NUM_THREADS=2 ./sblat1
OPENBLAS_NUM_THREADS=2 ./dblat1 OPENBLAS_NUM_THREADS=2 ./dblat1
OPENBLAS_NUM_THREADS=2 ./cblat1 OPENBLAS_NUM_THREADS=2 ./cblat1
OPENBLAS_NUM_THREADS=2 ./zblat1 OPENBLAS_NUM_THREADS=2 ./zblat1
endif endif
endif
level2 : sblat2 dblat2 cblat2 zblat2 level2 : sblat2 dblat2 cblat2 zblat2
rm -f ?BLAT2.SUMM rm -f ?BLAT2.SUMM
OPENBLAS_NUM_THREADS=1 ./sblat2 < ./sblat2.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat2 < ./sblat2.dat
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
OPENBLAS_NUM_THREADS=1 ./dblat2 < ./dblat2.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat2 < ./dblat2.dat
@$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0 @$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
OPENBLAS_NUM_THREADS=1 ./cblat2 < ./cblat2.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat2 < ./cblat2.dat
@$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0 @$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
OPENBLAS_NUM_THREADS=1 ./zblat2 < ./zblat2.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat2 < ./zblat2.dat
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
ifdef SMP ifdef SMP
rm -f ?BLAT2.SUMM rm -f ?BLAT2.SUMM
ifeq ($(USE_OPENMP), 1)
OMP_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
OMP_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
@$(GREP) -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || exit 0
OMP_NUM_THREADS=2 ./cblat2 < ./cblat2.dat
@$(GREP) -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || exit 0
OMP_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
else
OPENBLAS_NUM_THREADS=2 ./sblat2 < ./sblat2.dat OPENBLAS_NUM_THREADS=2 ./sblat2 < ./sblat2.dat
@$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0 @$(GREP) -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || exit 0
OPENBLAS_NUM_THREADS=2 ./dblat2 < ./dblat2.dat OPENBLAS_NUM_THREADS=2 ./dblat2 < ./dblat2.dat
@ -36,19 +53,30 @@ ifdef SMP
OPENBLAS_NUM_THREADS=2 ./zblat2 < ./zblat2.dat OPENBLAS_NUM_THREADS=2 ./zblat2 < ./zblat2.dat
@$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0 @$(GREP) -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || exit 0
endif endif
endif
level3 : sblat3 dblat3 cblat3 zblat3 level3 : sblat3 dblat3 cblat3 zblat3
rm -f ?BLAT3.SUMM rm -f ?BLAT3.SUMM
OPENBLAS_NUM_THREADS=1 ./sblat3 < ./sblat3.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./sblat3 < ./sblat3.dat
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
OPENBLAS_NUM_THREADS=1 ./dblat3 < ./dblat3.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./dblat3 < ./dblat3.dat
@$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0 @$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
OPENBLAS_NUM_THREADS=1 ./cblat3 < ./cblat3.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./cblat3 < ./cblat3.dat
@$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0 @$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
OPENBLAS_NUM_THREADS=1 ./zblat3 < ./zblat3.dat OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 ./zblat3 < ./zblat3.dat
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
ifdef SMP ifdef SMP
rm -f ?BLAT3.SUMM rm -f ?BLAT3.SUMM
ifeq ($(USE_OPENMP), 1)
OMP_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
OMP_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
@$(GREP) -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || exit 0
OMP_NUM_THREADS=2 ./cblat3 < ./cblat3.dat
@$(GREP) -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || exit 0
OMP_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
else
OPENBLAS_NUM_THREADS=2 ./sblat3 < ./sblat3.dat OPENBLAS_NUM_THREADS=2 ./sblat3 < ./sblat3.dat
@$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0 @$(GREP) -q FATAL SBLAT3.SUMM && cat SBLAT3.SUMM || exit 0
OPENBLAS_NUM_THREADS=2 ./dblat3 < ./dblat3.dat OPENBLAS_NUM_THREADS=2 ./dblat3 < ./dblat3.dat
@ -58,6 +86,7 @@ ifdef SMP
OPENBLAS_NUM_THREADS=2 ./zblat3 < ./zblat3.dat OPENBLAS_NUM_THREADS=2 ./zblat3 < ./zblat3.dat
@$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0 @$(GREP) -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || exit 0
endif endif
endif
FLDFLAGS = $(FFLAGS:-fPIC=) FLDFLAGS = $(FFLAGS:-fPIC=)
CEXTRALIB = CEXTRALIB =