ShadenSmith/splatt

Project build fail on sc16-sgd branch

Opened this issue · 0 comments

Hi, I'm trying to build the sc16-sgd branch as a CP-SGD benchmark. But the make stage failed with the following error. I'm using cmake version 3.24.0-rc3, icc and icpc version 2021.6.0.

make -C build/Linux-x86_64 all 
make[1]: Entering directory '/home/zywu/bench/splatt/build/Linux-x86_64'
make[2]: Entering directory '/home/zywu/bench/splatt/build/Linux-x86_64'
make[3]: Entering directory '/home/zywu/bench/splatt/build/Linux-x86_64'
make[3]: Leaving directory '/home/zywu/bench/splatt/build/Linux-x86_64'
make[3]: Entering directory '/home/zywu/bench/splatt/build/Linux-x86_64'
[  1%] Building C object lib/CMakeFiles/splatt.dir/__/src/base.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[  3%] Building C object lib/CMakeFiles/splatt.dir/__/src/bench.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[  5%] Building CXX object lib/CMakeFiles/splatt.dir/__/src/bfs.cc.o
icpc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[  6%] Building C object lib/CMakeFiles/splatt.dir/__/src/ccp/ccp.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[  8%] Building C object lib/CMakeFiles/splatt.dir/__/src/completion/als.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[ 10%] Building C object lib/CMakeFiles/splatt.dir/__/src/completion/ccd.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
/home/zywu/bench/splatt/src/completion/ccd.c(153): warning #191: type qualifier is meaningless on cast type
      mats[m] = (val_t const * restrict) model->factors[csf->dim_perm[m]] +
                 ^

/home/zywu/bench/splatt/src/completion/ccd.c(294): warning #191: type qualifier is meaningless on cast type
      mats[m] = (val_t const * const restrict) model->factors[csf->dim_perm[m]] +
                 ^

/home/zywu/bench/splatt/src/completion/ccd.c(418): warning #191: type qualifier is meaningless on cast type
      mats[m] = (val_t const * const restrict) model->factors[csf->dim_perm[m]] +
                 ^

/home/zywu/bench/splatt/src/completion/ccd.c(551): warning #191: type qualifier is meaningless on cast type
      mats[m] = (val_t const * const restrict) model->factors[csf->dim_perm[m]] +
                 ^

remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[ 11%] Building CXX object lib/CMakeFiles/splatt.dir/__/src/completion/completion.cc.o
icpc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[ 13%] Building C object lib/CMakeFiles/splatt.dir/__/src/completion/gd.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[ 15%] Building C object lib/CMakeFiles/splatt.dir/__/src/completion/gradient.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
remark #11074: Inlining inhibited by limit max-size 
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[ 16%] Building C object lib/CMakeFiles/splatt.dir/__/src/completion/lbfgs.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[ 18%] Building C object lib/CMakeFiles/splatt.dir/__/src/completion/liblbfgs/lbfgs.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[ 20%] Building C object lib/CMakeFiles/splatt.dir/__/src/completion/nlcg.c.o
icc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
[ 21%] Building CXX object lib/CMakeFiles/splatt.dir/__/src/completion/sgd.cc.o
icpc: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
/home/zywu/bench/splatt/src/completion/sgd.cc(2315): error: identifier "sgd_comm_t" is undefined
      sgd_comm_t * sgd_comm,
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2315): error: identifier "sgd_comm" is undefined
      sgd_comm_t * sgd_comm,
                   ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2316): error: type name is not allowed
      tc_model const * const model,
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2316): error: too many initializer values
      tc_model const * const model,
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2316): error: expected a ")"
      tc_model const * const model,
               ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2318): error: expected a ";"
  {
  ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2325): error: this pragma must immediately precede a statement
    #pragma omp parallel reduction(+:reg_obj)
            ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2335): error: this pragma must immediately precede a statement
        #pragma omp for schedule(static) nowait
                ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2340): warning #12: parsing restarts here after previous syntax error
        reg_obj += ws->regularization[m] * accum;
                                                ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2341): error: expected a declaration
      }
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2344): warning #12: parsing restarts here after previous syntax error
    MPI_Allreduce(MPI_IN_PLACE, &reg_obj, 1, SPLATT_MPI_VAL, MPI_SUM, MPI_COMM_WORLD);
                                                                                     ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2346): error: expected an identifier
    assert(reg_obj > 0);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2346): error: expected a type specifier
    assert(reg_obj > 0);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2347): error: expected a declaration
    return reg_obj;
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2348): error: expected a declaration
  }
  ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2373): warning #12: parsing restarts here after previous syntax error
          sizeof(val_t)*nlocalrow*nfactors);
                                           ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2375): error: expected a declaration
        for(int p=0; p < rinfo->layer_size[m]; ++p) {
        ^

/home/zywu/bench/splatt/src/completion/sgd.cc(2377): error: this pragma must immediately precede a statement
  #pragma omp parallel for
          ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3194): warning #12: parsing restarts here after previous syntax error
    splatt_csf *csf = NULL;
                          ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3197): error: expected a declaration
    if(ws->csf) {
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3221): warning #12: parsing restarts here after previous syntax error
    val_t loss = tc_loss_sq(train, model, ws);
                                             ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3222): error: identifier "model" is undefined
    val_t frobsq = tc_frob_sq(model, ws);
                              ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3222): error: identifier "ws" is undefined
    val_t frobsq = tc_frob_sq(model, ws);
                                     ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3223): error #77: this declaration has no storage class or type specifier
    tc_converge(train, validate, model, loss, frobsq, 0, ws);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3223): error: declaration is incompatible with "bool splatt_tc_converge(const sptensor_t *, const sptensor_t *, const tc_model *, splatt_val_t={double}, splatt_val_t={double}, splatt_idx_t={uint64_t={__uint64_t={unsigned long}}}, tc_ws *)" (declared at line 377 of "/home/zywu/bench/splatt/src/completion/completion.h")
    tc_converge(train, validate, model, loss, frobsq, 0, ws);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3223): error: identifier "train" is undefined
    tc_converge(train, validate, model, loss, frobsq, 0, ws);
                ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3223): error: identifier "validate" is undefined
    tc_converge(train, validate, model, loss, frobsq, 0, ws);
                       ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3223): error: identifier "loss" is undefined
    tc_converge(train, validate, model, loss, frobsq, 0, ws);
                                        ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3223): error: too many initializer values
    tc_converge(train, validate, model, loss, frobsq, 0, ws);
                       ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3229): error #77: this declaration has no storage class or type specifier
    timer_start(&ws->tc_time);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3229): error: declaration is incompatible with "void timer_start(sp_timer_t *)" (declared at line 132 of "/home/zywu/bench/splatt/src/completion/../timer.h")
    timer_start(&ws->tc_time);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3232): error: expected a declaration
    for(e=1; e < ws->max_its+1; ++e) {
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3243): error: this pragma must immediately precede a statement
  #pragma omp parallel for
          ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3253): error: this pragma must immediately precede a statement
  #pragma omp parallel for
          ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3259): warning #12: parsing restarts here after previous syntax error
      timer_stop(&ws->train_time);
                                 ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3262): error #77: this declaration has no storage class or type specifier
      timer_start(&ws->test_time);
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3262): error: variable "timer_start" has already been defined
      timer_start(&ws->test_time);
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3263): error #77: this declaration has no storage class or type specifier
      loss = tc_loss_sq(train, model, ws);
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3264): error #77: this declaration has no storage class or type specifier
      frobsq = tc_frob_sq(model, ws);
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3264): error: variable "frobsq" has already been defined
      frobsq = tc_frob_sq(model, ws);
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3265): error #77: this declaration has no storage class or type specifier
      obj = loss + frobsq;
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3265): error: variable "obj" has already been defined
      obj = loss + frobsq;
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3266): error: expected a declaration
      if(tc_converge(train, validate, model, loss, frobsq, e, ws)) {
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3270): warning #12: parsing restarts here after previous syntax error
      timer_stop(&ws->test_time);
                                ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3273): error: expected a declaration
      if(e > 1) {
      ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3281): warning #12: parsing restarts here after previous syntax error
      prev_obj = obj;
                    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3282): error: expected a declaration
    }
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3285): error #77: this declaration has no storage class or type specifier
    printf("     update_time %g (%g)\n", (ws->train_time.seconds - ws->shuffle_time.seconds), (ws->train_time.seconds - ws->shuffle_time.seconds)/e);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3285): error: declaration is incompatible with "int printf(const char *, ...)" (declared at line 318 of "/usr/include/stdio.h")
    printf("     update_time %g (%g)\n", (ws->train_time.seconds - ws->shuffle_time.seconds), (ws->train_time.seconds - ws->shuffle_time.seconds)/e);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3285): error: too many initializer values
    printf("     update_time %g (%g)\n", (ws->train_time.seconds - ws->shuffle_time.seconds), (ws->train_time.seconds - ws->shuffle_time.seconds)/e);
                                         ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3285): error: a value of type "const char *" cannot be used to initialize an entity of type "int"
    printf("     update_time %g (%g)\n", (ws->train_time.seconds - ws->shuffle_time.seconds), (ws->train_time.seconds - ws->shuffle_time.seconds)/e);
           ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3286): error #77: this declaration has no storage class or type specifier
    printf("     shuffle_time %g (%g)\n", ws->shuffle_time.seconds, ws->shuffle_time.seconds/e);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3286): error: variable "printf" has already been defined
    printf("     shuffle_time %g (%g)\n", ws->shuffle_time.seconds, ws->shuffle_time.seconds/e);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3286): error: too many initializer values
    printf("     shuffle_time %g (%g)\n", ws->shuffle_time.seconds, ws->shuffle_time.seconds/e);
                                          ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3286): error: a value of type "const char *" cannot be used to initialize an entity of type "int"
    printf("     shuffle_time %g (%g)\n", ws->shuffle_time.seconds, ws->shuffle_time.seconds/e);
           ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3287): error #77: this declaration has no storage class or type specifier
    printf("   test_time %g (%g)\n", ws->test_time.seconds, ws->test_time.seconds/e);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3287): error: variable "printf" has already been defined
    printf("   test_time %g (%g)\n", ws->test_time.seconds, ws->test_time.seconds/e);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3287): error: too many initializer values
    printf("   test_time %g (%g)\n", ws->test_time.seconds, ws->test_time.seconds/e);
                                     ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3287): error: a value of type "const char *" cannot be used to initialize an entity of type "int"
    printf("   test_time %g (%g)\n", ws->test_time.seconds, ws->test_time.seconds/e);
           ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3295): error #77: this declaration has no storage class or type specifier
    splatt_free(perm);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3295): error: declaration is incompatible with "void splatt_free(void *)" (declared at line 70 of "/home/zywu/bench/splatt/src/completion/../base.h")
    splatt_free(perm);
    ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3295): error: a value of type "splatt_idx_t={uint64_t={__uint64_t={unsigned long}}} *" cannot be used to initialize an entity of type "int"
    splatt_free(perm);
                ^

/home/zywu/bench/splatt/src/completion/sgd.cc(3299): error: expected a declaration
  }
  ^

compilation aborted for /home/zywu/bench/splatt/src/completion/sgd.cc (code 2)
lib/CMakeFiles/splatt.dir/build.make:243: recipe for target 'lib/CMakeFiles/splatt.dir/__/src/completion/sgd.cc.o' failed
make[3]: *** [lib/CMakeFiles/splatt.dir/__/src/completion/sgd.cc.o] Error 2
make[3]: Leaving directory '/home/zywu/bench/splatt/build/Linux-x86_64'
CMakeFiles/Makefile2:178: recipe for target 'lib/CMakeFiles/splatt.dir/all' failed
make[2]: *** [lib/CMakeFiles/splatt.dir/all] Error 2
make[2]: Leaving directory '/home/zywu/bench/splatt/build/Linux-x86_64'
Makefile:135: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/zywu/bench/splatt/build/Linux-x86_64'
Makefile:11: recipe for target 'all' failed
make: *** [all] Error 2

Seems there are some bugs with the code. How can I solve this problem?