diff -uNr DCNv2/src/cpu/dcn_v2_cpu.cpp new_DCNv2/src/cpu/dcn_v2_cpu.cpp
--- DCNv2/src/cpu/dcn_v2_cpu.cpp	2022-12-05 07:10:04.601575574 +0000
+++ new_DCNv2/src/cpu/dcn_v2_cpu.cpp	2022-12-05 07:10:04.621575575 +0000
@@ -1,4 +1,5 @@
 #include <vector>
+#include <TH/TH.h>
 #include "cpu/dcn_v2_im2col_cpu.h"
 
 #include <ATen/ATen.h>
@@ -138,8 +139,8 @@
                                              int deformable_group)
 {
 
-    TORCH_CHECK_ARG(input.is_contiguous(), 1, "input tensor has to be contiguous");
-    TORCH_CHECK_ARG(weight.is_contiguous(), 2, "weight tensor has to be contiguous");
+    THArgCheck(input.is_contiguous(), 1, "input tensor has to be contiguous");
+    THArgCheck(weight.is_contiguous(), 2, "weight tensor has to be contiguous");
 
     /*AT_ASSERTM(input.type().is_cuda(), "input must be a CUDA tensor");
     AT_ASSERTM(weight.type().is_cuda(), "weight must be a CUDA tensor");
diff -uNr DCNv2/src/cpu/dcn_v2_im2col_cpu.cpp new_DCNv2/src/cpu/dcn_v2_im2col_cpu.cpp
--- DCNv2/src/cpu/dcn_v2_im2col_cpu.cpp	2022-12-05 07:10:04.601575574 +0000
+++ new_DCNv2/src/cpu/dcn_v2_im2col_cpu.cpp	2022-12-05 07:10:04.621575575 +0000
@@ -1,4 +1,5 @@
 #include "dcn_v2_im2col_cpu.h"
+#include <TH/TH.h>
 #include <cstdio>
 #include <algorithm>
 #include <cstring>
@@ -388,4 +389,4 @@
   {
     printf("error in modulated_deformable_col2im_coord_cuda: %s\n", cudaGetErrorString(err));
   }*/
-}
\ No newline at end of file
+}
diff -uNr DCNv2/src/cpu/dcn_v2_psroi_pooling_cpu.cpp new_DCNv2/src/cpu/dcn_v2_psroi_pooling_cpu.cpp
--- DCNv2/src/cpu/dcn_v2_psroi_pooling_cpu.cpp	2022-12-05 07:10:04.601575574 +0000
+++ new_DCNv2/src/cpu/dcn_v2_psroi_pooling_cpu.cpp	2022-12-05 07:10:04.621575575 +0000
@@ -9,11 +9,12 @@
 // modified from the CUDA version for CPU use by Daniel K. Suhendro
 
 #include <cstdio>
+#include <TH/TH.h>
 #include <algorithm>
 #include <cstring>
 
 #include <ATen/ATen.h>
-#include <ATen/ceil_div.h>
+//#include <ATen/ceil_div.h>
 //#include <ATen/cuda/CUDAContext.h>
 
 /*#define CUDA_KERNEL_LOOP(i, n)                        \
@@ -420,4 +421,4 @@
   });
   //C10_CUDA_CHECK(cudaGetLastError());
   return std::make_tuple(input_grad, trans_grad);
-}
\ No newline at end of file
+}
diff -uNr DCNv2/src/cuda/dcn_v2_cuda.cu new_DCNv2/src/cuda/dcn_v2_cuda.cu
--- DCNv2/src/cuda/dcn_v2_cuda.cu	2022-12-05 07:10:04.601575574 +0000
+++ new_DCNv2/src/cuda/dcn_v2_cuda.cu	2022-12-05 07:10:04.621575575 +0000
@@ -1,4 +1,7 @@
 #include <vector>
+#include <THC/THC.h>
+#include <THC/THCAtomics.cuh>
+#include <THC/THCDeviceUtils.cuh>
 #include "dcn_v2_im2col_cuda.h"
 
 #include <ATen/ATen.h>
diff -uNr DCNv2/src/cuda/dcn_v2_im2col_cuda.cu new_DCNv2/src/cuda/dcn_v2_im2col_cuda.cu
--- DCNv2/src/cuda/dcn_v2_im2col_cuda.cu	2022-12-05 07:10:04.601575574 +0000
+++ new_DCNv2/src/cuda/dcn_v2_im2col_cuda.cu	2022-12-05 07:10:04.621575575 +0000
@@ -1,4 +1,7 @@
 #include "dcn_v2_im2col_cuda.h"
+#include <THC/THC.h>
+#include <THC/THCAtomics.cuh>
+#include <THC/THCDeviceUtils.cuh>
 #include <cstdio>
 #include <algorithm>
 #include <cstring>
@@ -395,4 +398,4 @@
   {
     printf("error in modulated_deformable_col2im_coord_cuda: %s\n", cudaGetErrorString(err));
   }
-}
\ No newline at end of file
+}
diff -uNr DCNv2/src/cuda/dcn_v2_psroi_pooling_cuda.cu new_DCNv2/src/cuda/dcn_v2_psroi_pooling_cuda.cu
--- DCNv2/src/cuda/dcn_v2_psroi_pooling_cuda.cu	2022-12-05 07:10:04.601575574 +0000
+++ new_DCNv2/src/cuda/dcn_v2_psroi_pooling_cuda.cu	2022-12-05 07:10:04.621575575 +0000
@@ -8,13 +8,16 @@
 /***************** Adapted by Charles Shang *********************/
 
 #include <cstdio>
+#include <THC/THC.h>
+#include <THC/THCAtomics.cuh>
+#include <THC/THCDeviceUtils.cuh>
 #include <algorithm>
 #include <cstring>
 #include <iostream>
 
 #include <ATen/ATen.h>
 #include <ATen/cuda/CUDAContext.h>
-#include <ATen/ceil_div.h>
+//#include <ATen/ceil_div.h>
 
 #define CUDA_KERNEL_LOOP(i, n)                        \
   for (int i = blockIdx.x * blockDim.x + threadIdx.x; \