[petsc-dev] I am getting this error ...

Mark Adams mfadams at lbl.gov
Thu Nov 4 20:13:45 CDT 2021


I see. crazy graph of compiler flags.
OK, nothing critical. GNU works fine and the app that I support has
given up on nvhpc also (don't know why).

On Thu, Nov 4, 2021 at 9:08 PM Barry Smith <bsmith at petsc.dev> wrote:

>
>    This comes from the persistent problem with PETSc's make system using
> too many flags for compiling CUDA that have not been tested by configure.
> See below the -mp=gpu is provided probably from the CPPFLAGS or
> CXXPPFLAGS(sp) that is improperly used by the PETSc makefiles to compile
> CUDA code!
>
>
> Using CUDA compile:
> /global/common/software/nersc/cos1.3/cuda/11.3.0/bin/nvcc -o .o
> -I/opt/cray/pe/mpich/8.1.10/ofi/nvidia/20.7/include -I/opt/cray/pe/libsci/
> 21.08.1.2/NVIDIA/20.7/x86_64/include -I/opt/cray/pe/pmi/6.0.14/include
> -I/opt/cray/pe/dsmml/0.2.2/dsmml//include
> -I/opt/cray/xpmem/2.2.40-7.0.1.0_3.1__g1d7a24d.shasta/include  -g
> -Xcompiler -rdynamic -DLANDAU_DIM=2 -DLANDAU_MAX_SPECIES=10
> -DLANDAU_MAX_Q=4 -Xcompiler -fPIC -std=c++17 -gencode
> arch=compute_80,code=sm_80  -Wno-deprecated-gpu-targets  -c
> --compiler-options=-I/global/homes/m/madams/petsc/include
> -I/global/homes/m/madams/petsc/arch-perlmutter-opt-nvidia-cuda/include
> -I/global/common/software/nersc/cos1.3/cuda/11.3.0/include -mp=gpu
> -I/global/homes/m/madams/petsc/include
> -I/global/homes/m/madams/petsc/arch-perlmutter-opt-nvidia-cuda/include
> -I/global/common/software/nersc/cos1.3/cuda/11.3.0/include
>
>
>
> On Nov 4, 2021, at 7:31 PM, Mark Adams <mfadams at lbl.gov> wrote:
>
> OK, configure is done.
> Maybe I have too many -mp=gpu
>
>        CUDAC
> arch-perlmutter-opt-nvidia-cuda/obj/sys/classes/random/impls/curand/curand2.o
> gcc: error: unrecognized command line option ‘-mp=gpu’; did you mean
> ‘-mpku’?
>
> On Thu, Nov 4, 2021 at 5:51 PM Barry Smith <bsmith at petsc.dev> wrote:
>
>>
>>   Need the same thing for the C++ preprocessor flag
>>
>>
>>
>> On Nov 4, 2021, at 5:44 PM, Mark Adams <mfadams at lbl.gov> wrote:
>>
>> It gets a lot further.
>>
>> On Thu, Nov 4, 2021 at 5:32 PM Mark Adams <mfadams at lbl.gov> wrote:
>>
>>> OK, sorry I missed the CPPFLAGS. It is running now.
>>> Thanks,
>>>
>>> On Thu, Nov 4, 2021 at 4:43 PM Satish Balay <balay at mcs.anl.gov> wrote:
>>>
>>>> Multiple e-mail threads on the same issue (:
>>>>
>>>> As suggested in my earlier thread - add -mp=gpu to both CPPFLAGS and
>>>> CFLAGS [or LDFLAGS]
>>>>
>>>> Satish
>>>>
>>>> -------
>>>> Executing: cc  -o /tmp/petsc-Vvs8_T/config.setCompilers/conftest   -g
>>>> -DLANDAU_DIM=2 -DLANDAU_MAX_SPECIES=10 -DLANDAU_MAX_Q=4
>>>> /tmp/petsc-Vvs8_T/config.setCompilers/conftest.o
>>>> Possible ERROR while running linker:
>>>> stderr:
>>>> nvc-Warning-The -gpu option has no effect unless a language-specific
>>>> option to enable GPU code generation is used (e.g.: -acc, -mp=gpu, -stdpar,
>>>> -cuda)
>>>>
>>>>
>>>> On Thu, 4 Nov 2021, Mark Adams wrote:
>>>>
>>>> > It is CPPFLAGS. I seem to get the same behavior.
>>>> >
>>>> > FWIW, I did get this response from NERSc but I don't know how to
>>>> interpret
>>>> > it.
>>>> >
>>>> > He seems to be saying that I don't need -mp=gpu for the device
>>>> compiler
>>>> > (nvcc). He seems to think that I am adding -gpu.
>>>> >
>>>> > nvcc -- The device compiler does not need any of those flags because
>>>> it
>>>> > already knows that it's being fed cuda code. The warning you're
>>>> seeing is
>>>> > coming from nvc (which is the host / CPU side compiler) if you're in
>>>> the
>>>> > PrgEnv-nvidia environment. You should not need to add -mp=gpu and
>>>> -cuda,
>>>> > please just add the -cuda flag (to your host code) not to the device
>>>> code.
>>>> >
>>>> > I will try to talk with this guy again.
>>>> >
>>>> > Thanks,
>>>> >
>>>> >
>>>> > On Thu, Nov 4, 2021 at 4:11 PM Barry Smith <bsmith at petsc.dev> wrote:
>>>> >
>>>> > >
>>>> > >   Yes, you need to use the CPPFLAGS which maybe called CPPCFLAGS I
>>>> am not
>>>> > > sure
>>>> > >
>>>> > >
>>>> > > On Nov 4, 2021, at 3:23 PM, Mark Adams <mfadams at lbl.gov> wrote:
>>>> > >
>>>> > > Ah, CCFLAGS does not seem to work.
>>>> > >
>>>> > > On Thu, Nov 4, 2021 at 3:07 PM Barry Smith <bsmith at petsc.dev>
>>>> wrote:
>>>> > >
>>>> > >>
>>>> > >>   You have to pass in the flag to turn off the bitching about -gpu
>>>> to the
>>>> > >> C preprocessor, not the C compiler.
>>>> > >>
>>>> > >>
>>>> > >> stderr:
>>>> > >> nvc-Warning-The -gpu option has no effect unless a
>>>> language-specific
>>>> > >> option to enable GPU code generation is used (e.g.: -acc, -mp=gpu,
>>>> -stdpar,
>>>> > >> -cuda)
>>>> > >> Source:
>>>> > >> #include "confdefs.h"
>>>> > >> #include "conffix.h"
>>>> > >> #include <stdlib.h>
>>>> > >>
>>>> > >>
>>>> > >>
>>>> > >> > On Nov 4, 2021, at 2:49 PM, Mark Adams <mfadams at lbl.gov> wrote:
>>>> > >> >
>>>> > >> > on Perlmutter with nvhpc:
>>>> > >> >
>>>> > >> >               Defined make macro "CPP" to "cc --use cpp32"
>>>> > >> > Preprocessing source:
>>>> > >> > #include "confdefs.h"
>>>> > >> > #include "conffix.h"
>>>> > >> > #include <stdlib.h>
>>>> > >> >
>>>> > >> > Executing: cc --use cpp32
>>>> -I/tmp/petsc-jV9U1b/config.setCompilers
>>>> > >> /tmp/petsc-jV9U1b/config.setCompilers/conftest.c
>>>> > >> > Possible ERROR while running preprocessor: exit code 1
>>>> > >> > stderr:
>>>> > >> > nvc-Error-Unknown switch: --use
>>>> > >> > Source:
>>>> > >> > <configure.log>
>>>> > >>
>>>> > >> <configure.log>
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>>
>>>> <configure.log>
>>
>>
>> <make.log><configure.log>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20211104/9a480bd2/attachment-0001.html>


More information about the petsc-dev mailing list