Atomic Add on Surface Memory

Hi, I am needing to create an atomic add on surface memory. Is this possible?
At the moment I am using this instructions to make the add:

surf3Dread(&result, surfImage,isizeof(float),j,k, cudaBoundaryModeClamp);
result = result + siddonWeight * aux;
surf3Dwrite(result, surfImage,i
sizeof(float),j,k, cudaBoundaryModeClamp);

But I have race condition problem. So it should be an attomicAdd. Is there any way to do it?