JeffersonLab / qphix

QCD for Intel Xeon Phi and Xeon processors
http://jeffersonlab.github.io/qphix/
Other
13 stars 11 forks source link

clover_product does not compile for half precision #113

Closed kostrzewa closed 6 years ago

kostrzewa commented 6 years ago

The clover_product stuff does not compile with half precision due to missing rep's in various places. I had already solved this in this in the tmLQCD version of these, see https://github.com/etmc/tmLQCD/blob/master/qphix_base_classes.hpp

I'll port the changes from the tmLQCD version here, hopefully it will be sufficient... I think it just requires a few instances of

QPhiX::rep<FT,double>(-QPhiX::rep<double,FT>(off_diag_in[idx15][im][veclen_idx]))

and similar, because the half type does not support negation...

kostrzewa commented 6 years ago

@martin-ueding I'll get the changes in, if everything works right away, we can just close this. Otherwise it will require some more work...

kostrzewa commented 6 years ago

Okay, that fixed that problem, but we still have issues with the Intel compiler foo...

/marconi/home/userexternal/bkostrze/local/libs/knl/qphix.jlab/include/qphix/linearOp.h(117): error: no instance of overloaded function "QPhiX::TwoFlavEvenOddLinearOperator<FT, veclen, soalen, compress>::M_offdiag [with FT=double, veclen=8, soalen=8, compress=true]" matches the argument list
            argument types are: (double (**)[3][4][2][8], const QPhiX::TwoFlavEvenOddLinearOperator<double, 8, 8, true>::FourSpinorBlock *const *, int)
            object type is: const QPhiX::TwoFlavEvenOddLinearOperator<double, 8, 8, true>
      this->M_offdiag(res, const_cast<FourSpinorBlock const *const *>(in), isign);
            ^
/marconi/home/userexternal/bkostrze/local/libs/knl/qphix.jlab/include/qphix/linearOp.h(135): note: this candidate was rejected because mismatch in count of arguments
    virtual void M_offdiag(FourSpinorBlock *res[2],

at least I think that's the reason.

kostrzewa commented 6 years ago

Okay, the last commit in that branch should also fix that. Got it to compile on Marconi now.

martin-ueding commented 6 years ago

So is this issue still open?

kostrzewa commented 6 years ago

Since the commit has not yet been merged, yes, but I'll close it now and merge.