> Am 12.10.2020 um 20:11 schrieb Matthew Knepley <[email protected]>:
>
> On Mon, Oct 12, 2020 at 3:47 AM Patrick Sanan <[email protected]
> <mailto:[email protected]>> wrote:
> I have a toy application code built on PETSc which needs to compile and link
> a .cu file.
>
> I'd love to be able to configure PETSc (with CUDA), and then use a modified
> version of share/petsc/Makefile.user to compile and link my code, using a
> consistent set of compilers, libraries, and flags. Makefile.user uses
> petsc.pc (via pkg-config) and implicit GNU make rules to do almost everything
> for you for C, C++, and Fortran.
>
> However, I don't think it currently supports CUDA, and I'm not familiar
> enough with BuildSystem or pkg-config to quickly add support myself, so I
> resort to the "old" way, including things like this in my Makefile:
>
> Okay, here is where the pkgconf file gets generated, and in fact where the
> language sections are
>
> https://gitlab.com/petsc/petsc/-/blob/master/config/PETSc/Configure.py#L161
> <https://gitlab.com/petsc/petsc/-/blob/master/config/PETSc/Configure.py#L161>
>
> I think you can just put a "CUDA" section in. I do not know what names to
> use, so I have not done it.
That's where I got stuck as well :D
I can follow the pattern to get the compiler (CUDAC) and some of the flags, but
that doesn't seem to have all the information that CUDAC, CUDAC_FLAGS,
CUDA_INCLUDE, and CUDA_LIB provide in petscvariables.
Naively I would assume I'd need to dig around to figure out how those variables
are populated, and get the same info into petsc.pc
But, I worry that I'm misunderstanding fundamentals about pkg-config and how it
is supposed to work. Am I free to put whatever fields I want in there, or is
there some authority on what's "standard"?
> Thanks,
>
> Matt
>
> include ${PETSC_DIR}/${PETSC_ARCH}/lib/petsc/conf/petscvariables
>
> %.o : %.cu
> $(CUDAC) -c $(CUDAC_FLAGS) $(CUDA_INCLUDE) -o $@ $<
>
> app : ${OBJ}
> $(LINK.cc <http://link.cc/>) -o $@ $^ $(LDLIBS) $(CUDA_LIB)
>
>
> Is it possible / easy / advisable to add CUDA support to petsc.pc ?
>
>
> --
> What most experimenters take for granted before they begin their experiments
> is infinitely more interesting than any results to which their experiments
> lead.
> -- Norbert Wiener
>
> https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>