> 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/>

Reply via email to