Today I wanted to upgrade PIConGPU on one of my single GPU machines and carried out the following succession of commands:
spack clean -a
spack uninstall -y picongpu@develop
spack install picongpu@develop +adios %[email protected]
then loaded
spack load picongpu@develop +adios %[email protected]
and compiled the model files.
There is a compilation error from the radiationObserver.param namely:
/include/picongpu/param/radiationObserver.param(55): error #135: namespace "cupla::cupla_cuda_async::device::math" has no member "sincos"
and the output log file is attached.
I assume there is some compiler incompatibility but I don't know what could I do. I have the same model (including the radiation param files) running with gcc-7.4.0 on a different computer, but the picongpu@develop upgrade was done there a few months ago. Something happened in between.
Hello @cbontoiu .
It may be affected by renaming of math functions namespaces, which happened in May. For the develop version, sincos should be called as pmacc::math::sincos (and similarly other math functions), e.g. here. However, in the earlier version it was just math::sincos. Could you check that your setup for the develop version uses the pmacc::... version?
If this does not help, please attach the whole setup.
Hello @sbastrakov I have done this but now there are other errors. I attach the model below. Thank you.
Okay, so it turned out there was another renaming in the dev branch: in pml.param what used to be namespace yeePML at line 9 is now called namespace Pml (importantly, with the capital P). Also, my compiler does not allow , just before > in lines 70 and 83 of fileOutput.param, but I know some compilers allow it. Attaching the set of .param files with these modifications.
Not sure if it fully builds, takes too long on our cluster.
param_fixed.zip
Yes, it compiles now. Thank you.
Okay, I will close the issue Please re-open if necessary.