 
     if (maxIndex != -1) {
       // atomic add
-      atomicAdd(input_grad + maxIndex, output_grad[index]);
+      platform::CudaAtomicAdd(input_grad + maxIndex, output_grad[index]);
     }
   }
 }

    }
    if (maxIdx != -1) {
      // atomic add
      atomicAdd(input_grad + maxIdx, output_grad[index]);
    }
  }
}

};

template class MaxPool2dGradFunctor<platform::GPUPlace, float>;
template class MaxPool2dGradFunctor<platform::GPUPlace, double>;

template class Pool2dFunctor<platform::GPUPlace,
                             paddle::operators::math::MaxPool<float>, float>;
