Open samueleruffino99 opened 9 months ago
I figured out that, since my coda capability is 5.0 at maximum, atomAdd is not supported (it is from 6.0 on) and I had to define it by myself. See https://stackoverflow.com/questions/37566987/cuda-atomicadd-for-doubles-definition-error for more explanation. In particular, I had to add at the beginning of RoiAlign_cuda.cu and RoiPool_cuda.cu the following lines of code:
/ Define custom atomicAdd when cuda capability is less then 6.00
#if __CUDA_ARCH__ < 600
__device__ double myatomicAdd2(double* address, double val)
{
unsigned long long int* address_as_ull =
(unsigned long long int*)address;
unsigned long long int old = *address_as_ull, assumed;
do {
assumed = old;
old = atomicCAS(address_as_ull, assumed,
__double_as_longlong(val +
__longlong_as_double(assumed)));
// Note: uses integer comparison to avoid hang in case of NaN (since NaN != NaN)
} while (assumed != old);
return __longlong_as_double(old);
}
#endif
```.
Moreover, pay attention that you should define them with different names (e.g. 1 and 2 for example) or define it in another file as global function.
Hi @samueleruffino99
i followed your suggestion but still getting below error : any help ?
error: argument of type "float *" is incompatible with parameter of type "double *"
thanks in advance
I am trying to build faster_rcnn with
`python setup.py build develop
. I am getting this error (every time atomicAdd is used):The final error log is: