When I was tried compiling the GotoBLAS2 on my Westmere chipsets, I followed the "02QuickInstall.txt", I got this error
../kernel/x86_64/gemm_ncopy_4.S: Assembler messages: ../kernel/x86_64/gemm_ncopy_4.S:192: Error: undefined symbol `RPREFETCHSIZE' in operation ........... ........... ........... gcc -O2 -Wall -m64 -DF_INTERFACE_INTEL -fPIC -DSMP_SERVER -DMAX_CPU_NUMBER=8 -D ASMNAME=strmm_kernel_RN -DASMFNAME=strmm_kernel_RN_ -DNAME=strmm_kernel_RN_ -DCN AME=strmm_kernel_RN -DCHAR_NAME=\"strmm_kernel_RN_\" -DCHAR_CNAME=\"strmm_kernel _RN\" -I.. -UDOUBLE -UCOMPLEX -c -DTRMMKERNEL -UDOUBLE -UCOMPLEX -ULEFT -UTRANS A ../kernel/x86_64/gemm_kernel_8x4_sse3.S -o strmm_kernel_RN.o make: *** [sgemm_oncopy.o] Error 1 make: *** Waiting for unfinished jobs.... make: Leaving directory `/root/GotoBLAS2/kernel'
I was quite puzzled to why the compilation did not work. I googled and found a wonderful answer Trouble compiling GotoBLAS2 on newer CPU. Basically, you will need to
gmake clean gmake TARGET=NEHALEMEventually yo will get something like
GotoBLAS build complete. OS ... Linux Architecture ... x86_64 BINARY ... 64bit C compiler ... GCC (command line : gcc) Fortran compiler ... INTEL (command line : ifort) Library Name ... libgoto2_nehalemp-r1.13.a (Multi threaded; Max num-threads is 8)
According to Trouble compiling GotoBLAS2 on newer CPU, the problem appears to be that newer CPUs (Intel X5650 in my case) are not detected properly by the CPU ID routine in GotoBlas2.
The problem with
gemm_ncopy_4.Sarises because it defines
#ifdefstatements depending on CPU type. There is an entry for
#ifdef GENERIC, but that was not set for me in