Hi. I would like to make some modification on fastfm but I couldn't compile this fastfm-core module. I'm using Ubuntu/16.04 with gcc 5.4.0 .
Here is my compile error log. Looks it is a OpenBlas problem though.
$ make
( cd externals/CXSparse ; make library )
make[1]: Entering directory '/home/du/workspace/fastFM/fastFM-core/externals/CXSparse'
( cd Lib ; make )
make[2]: Entering directory '/home/du/workspace/fastFM/fastFM-core/externals/CXSparse/Lib'
make[2]: Nothing to be done for 'default'.
make[2]: Leaving directory '/home/du/workspace/fastFM/fastFM-core/externals/CXSparse/Lib'
make[1]: Leaving directory '/home/du/workspace/fastFM/fastFM-core/externals/CXSparse'
( export USE_THREAD=0; cd externals/OpenBLAS ; make libs)
make[1]: Entering directory '/home/du/workspace/fastFM/fastFM-core/externals/OpenBLAS'
getarch_2nd.c: In function ‘main’:
getarch_2nd.c:12:35: error: ‘SGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
printf("SGEMM_UNROLL_M=%d\n", SGEMM_DEFAULT_UNROLL_M);
^
getarch_2nd.c:12:35: note: each undeclared identifier is reported only once for each function it appears in
getarch_2nd.c:13:35: error: ‘SGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
printf("SGEMM_UNROLL_N=%d\n", SGEMM_DEFAULT_UNROLL_N);
^
getarch_2nd.c:14:35: error: ‘DGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
printf("DGEMM_UNROLL_M=%d\n", DGEMM_DEFAULT_UNROLL_M);
^
getarch_2nd.c:15:35: error: ‘DGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
printf("DGEMM_UNROLL_N=%d\n", DGEMM_DEFAULT_UNROLL_N);
^
getarch_2nd.c:19:35: error: ‘CGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
printf("CGEMM_UNROLL_M=%d\n", CGEMM_DEFAULT_UNROLL_M);
^
getarch_2nd.c:20:35: error: ‘CGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
printf("CGEMM_UNROLL_N=%d\n", CGEMM_DEFAULT_UNROLL_N);
^
getarch_2nd.c:21:35: error: ‘ZGEMM_DEFAULT_UNROLL_M’ undeclared (first use in this function)
printf("ZGEMM_UNROLL_M=%d\n", ZGEMM_DEFAULT_UNROLL_M);
^
getarch_2nd.c:22:35: error: ‘ZGEMM_DEFAULT_UNROLL_N’ undeclared (first use in this function)
printf("ZGEMM_UNROLL_N=%d\n", ZGEMM_DEFAULT_UNROLL_N);
^
getarch_2nd.c:69:50: error: ‘SGEMM_DEFAULT_Q’ undeclared (first use in this function)
printf("#define SLOCAL_BUFFER_SIZE\t%ld\n", (SGEMM_DEFAULT_Q * SGEMM_DEFAULT_UNROLL_N * 4 * 1 * sizeof(float)));
^
getarch_2nd.c:70:50: error: ‘DGEMM_DEFAULT_Q’ undeclared (first use in this function)
printf("#define DLOCAL_BUFFER_SIZE\t%ld\n", (DGEMM_DEFAULT_Q * DGEMM_DEFAULT_UNROLL_N * 2 * 1 * sizeof(double)));
^
getarch_2nd.c:71:50: error: ‘CGEMM_DEFAULT_Q’ undeclared (first use in this function)
printf("#define CLOCAL_BUFFER_SIZE\t%ld\n", (CGEMM_DEFAULT_Q * CGEMM_DEFAULT_UNROLL_N * 4 * 2 * sizeof(float)));
^
getarch_2nd.c:72:50: error: ‘ZGEMM_DEFAULT_Q’ undeclared (first use in this function)
printf("#define ZLOCAL_BUFFER_SIZE\t%ld\n", (ZGEMM_DEFAULT_Q * ZGEMM_DEFAULT_UNROLL_N * 2 * 2 * sizeof(double)));
^
make[1]: *** [getarch_2nd] Error 1
Makefile:123: *** OpenBLAS: Detecting CPU failed. Please set TARGET explicitly, e.g. make TARGET=your_cpu_target. Please read README for the detail.. Stop.
make[1]: Leaving directory '/home/du/workspace/fastFM/fastFM-core/externals/OpenBLAS'
Makefile:3: recipe for target 'lib' failed
make: *** [lib] Error 2
By the way, the doc says I have to install OpenBLAS with apt-get but the makefile code looks just using extrenals/OpenBLAS, not system OpenBLAS. Is this build procedure correct?
Hi. I would like to make some modification on fastfm but I couldn't compile this fastfm-core module. I'm using Ubuntu/16.04 with gcc 5.4.0 .
Here is my compile error log. Looks it is a OpenBlas problem though.
By the way, the doc says I have to install OpenBLAS with apt-get but the makefile code looks just using extrenals/OpenBLAS, not system OpenBLAS. Is this build procedure correct?