<div dir="ltr"><div>This error goes away with 32 bit integers. These methods are part of CUDA C++ (<a href="https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html" target="_blank">https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html</a>) and I see unsigned long long int versions, but not signed ones that are in PETSc.</div><div><br></div><div>My cuda is not that new:</div><div><br></div>08:43 2 stefanozampini/hypre-cuda-rebased-v2= ~/petsc_install$ nvcc --version<br>nvcc: NVIDIA (R) Cuda compiler driver<br>Copyright (c) 2005-2019 NVIDIA Corporation<br>Built on Sun_Jul_28_19:07:52_PDT_2019<br>Cuda compilation tools, release 10.1, V10.1.243<br><div> </div><div>Junchao, do you have any ideas?</div><div><br></div><div>I did try just removing these methods and then it complained that they were not there.</div><div><br></div><div>Thanks,</div><div>Mark</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 12, 2020 at 9:26 PM Satish Balay <<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">>>>>>>>><br>
/autofs/nccs-svm1_home1/adams/petsc_install/src/vec/is/sf/impls/basic/cuda/<a href="http://sfpackcuda.cu" rel="noreferrer" target="_blank">sfpackcuda.cu</a>(334): error: function "atomicMin(long long *, long long)" has already been defined<br>
<br>
/autofs/nccs-svm1_home1/adams/petsc_install/src/vec/is/sf/impls/basic/cuda/<a href="http://sfpackcuda.cu" rel="noreferrer" target="_blank">sfpackcuda.cu</a>(345): error: function "atomicMax(long long *, long long)" has already been defined<br>
<br>
/autofs/nccs-svm1_home1/adams/petsc_install/src/vec/is/sf/impls/basic/cuda/<a href="http://sfpackcuda.cu" rel="noreferrer" target="_blank">sfpackcuda.cu</a>(413): error: function "atomicAnd(long long *, long long)" has already been defined<br>
<br>
/autofs/nccs-svm1_home1/adams/petsc_install/src/vec/is/sf/impls/basic/cuda/<a href="http://sfpackcuda.cu" rel="noreferrer" target="_blank">sfpackcuda.cu</a>(414): error: function "atomicOr(long long *, long long)" has already been defined<br>
<br>
/autofs/nccs-svm1_home1/adams/petsc_install/src/vec/is/sf/impls/basic/cuda/<a href="http://sfpackcuda.cu" rel="noreferrer" target="_blank">sfpackcuda.cu</a>(415): error: function "atomicXor(long long *, long long)" has already been defined<br>
<<<<<<<br>
<br>
This is a strange error. For one the compiler is not showing where the prior definition is.<br>
<br>
And the prior definition I see is 'double atomicMin(double* address, double val)' which shouldn't conflict - as this is c++?<br>
<br>
Satish<br>
<br>
On Thu, 12 Mar 2020, Mark Adams wrote:<br>
<br>
> I get this make error in stefanozampini/hypre-cuda-rebased-v2<br>
> <br>
<br>
</blockquote></div></div>