> On Sep 27, 2020, at 11:55 AM, Zhang, Hong <hongzh...@anl.gov> wrote: > > > >> On Sep 25, 2020, at 8:09 PM, Barry Smith <bsm...@petsc.dev >> <mailto:bsm...@petsc.dev>> wrote: >> >> >> Configure by default should find out the available GPU and build for that >> sm_* it should not require the user to set this (how the heck is the user >> going to know what to set?) If I remember correctly there is a utility >> available that gives this information. >> >> For generic builds like in package distributions I don't know how it >> should work, ideally all the possibilities would be available in the library >> and at run time the correct one will be utilized. > > > For package distribution we should add as many possibilities as possible. To > have maximum compatibility on CUDA 11, we can add
Hong This is good, I'll add this support. But what about compiling PETSc code that depends on a later feature? How to have it in the library but not break things when not supported? Barry > > -gencode=arch=compute_52,code=sm_52 \ > -gencode=arch=compute_60,code=sm_60 \ > -gencode=arch=compute_61,code=sm_61 \ > -gencode=arch=compute_70,code=sm_70 \ > -gencode=arch=compute_75,code=sm_75 > > The downside is longer compilation time and fatter binary. > > Hong (Mr.) > > > >> >> Barry >> >> >>> On Sep 25, 2020, at 5:49 PM, Mark Adams <mfad...@lbl.gov >>> <mailto:mfad...@lbl.gov>> wrote: >>> >>> '--CUDAFLAGS=-arch=sm_70', >>> >>> seems to fix this. >>> >>> On Fri, Sep 25, 2020 at 6:31 PM Mark Adams <mfad...@lbl.gov >>> <mailto:mfad...@lbl.gov>> wrote: >>> I see kokkos and hyper have a sm_70 flag, but I don't see one for PETSc. >>> >>> It looks like you have to specify this to get modern atomics to work in >>> Cuda. I get: >>> >>> /ccs/home/adams/petsc/include/petscaijdevice.h(99): error: no instance of >>> overloaded function "atomicAdd" matches the argument list >>> argument types are: (double *, double) >>> >>> I tried using a Kokkos configuration, thinking I could get these sm_70 >>> flags, but that did not work. >>> >>> Any ideas? >>> >>> Mark >> >