Unverified Commit c7b294a3 authored by Xinlong Wang's avatar Xinlong Wang Committed by GitHub
Browse files

Merge pull request #161 from seonho/master

Fix compilation issue on PyTorch > 1.4
parents 0c689aec 2f758e90
...@@ -63,26 +63,26 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput, ...@@ -63,26 +63,26 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
at::Tensor weight, int kH, int kW, int dH, int dW, int padH, at::Tensor weight, int kH, int kW, int dH, int dW, int padH,
int padW, int dilationH, int dilationW, int group, int padW, int dilationH, int dilationW, int group,
int deformable_group) { int deformable_group) {
AT_CHECK(weight.ndimension() == 4, TORCH_CHECK(weight.ndimension() == 4,
"4D weight tensor (nOutputPlane,nInputPlane,kH,kW) expected, " "4D weight tensor (nOutputPlane,nInputPlane,kH,kW) expected, "
"but got: %s", "but got: %s",
weight.ndimension()); weight.ndimension());
AT_CHECK(weight.is_contiguous(), "weight tensor has to be contiguous"); TORCH_CHECK(weight.is_contiguous(), "weight tensor has to be contiguous");
AT_CHECK(kW > 0 && kH > 0, TORCH_CHECK(kW > 0 && kH > 0,
"kernel size should be greater than zero, but got kH: %d kW: %d", kH, "kernel size should be greater than zero, but got kH: %d kW: %d", kH,
kW); kW);
AT_CHECK((weight.size(2) == kH && weight.size(3) == kW), TORCH_CHECK((weight.size(2) == kH && weight.size(3) == kW),
"kernel size should be consistent with weight, ", "kernel size should be consistent with weight, ",
"but got kH: %d kW: %d weight.size(2): %d, weight.size(3): %d", kH, "but got kH: %d kW: %d weight.size(2): %d, weight.size(3): %d", kH,
kW, weight.size(2), weight.size(3)); kW, weight.size(2), weight.size(3));
AT_CHECK(dW > 0 && dH > 0, TORCH_CHECK(dW > 0 && dH > 0,
"stride should be greater than zero, but got dH: %d dW: %d", dH, dW); "stride should be greater than zero, but got dH: %d dW: %d", dH, dW);
AT_CHECK( TORCH_CHECK(
dilationW > 0 && dilationH > 0, dilationW > 0 && dilationH > 0,
"dilation should be greater than 0, but got dilationH: %d dilationW: %d", "dilation should be greater than 0, but got dilationH: %d dilationW: %d",
dilationH, dilationW); dilationH, dilationW);
...@@ -98,7 +98,7 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput, ...@@ -98,7 +98,7 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
dimw++; dimw++;
} }
AT_CHECK(ndim == 3 || ndim == 4, "3D or 4D input tensor expected but got: %s", TORCH_CHECK(ndim == 3 || ndim == 4, "3D or 4D input tensor expected but got: %s",
ndim); ndim);
long nInputPlane = weight.size(1) * group; long nInputPlane = weight.size(1) * group;
...@@ -110,7 +110,7 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput, ...@@ -110,7 +110,7 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
long outputWidth = long outputWidth =
(inputWidth + 2 * padW - (dilationW * (kW - 1) + 1)) / dW + 1; (inputWidth + 2 * padW - (dilationW * (kW - 1) + 1)) / dW + 1;
AT_CHECK(nInputPlane % deformable_group == 0, TORCH_CHECK(nInputPlane % deformable_group == 0,
"input channels must divide deformable group size"); "input channels must divide deformable group size");
if (outputWidth < 1 || outputHeight < 1) if (outputWidth < 1 || outputHeight < 1)
...@@ -120,27 +120,27 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput, ...@@ -120,27 +120,27 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
nInputPlane, inputHeight, inputWidth, nOutputPlane, outputHeight, nInputPlane, inputHeight, inputWidth, nOutputPlane, outputHeight,
outputWidth); outputWidth);
AT_CHECK(input.size(1) == nInputPlane, TORCH_CHECK(input.size(1) == nInputPlane,
"invalid number of input planes, expected: %d, but got: %d", "invalid number of input planes, expected: %d, but got: %d",
nInputPlane, input.size(1)); nInputPlane, input.size(1));
AT_CHECK((inputHeight >= kH && inputWidth >= kW), TORCH_CHECK((inputHeight >= kH && inputWidth >= kW),
"input image is smaller than kernel"); "input image is smaller than kernel");
AT_CHECK((offset.size(2) == outputHeight && offset.size(3) == outputWidth), TORCH_CHECK((offset.size(2) == outputHeight && offset.size(3) == outputWidth),
"invalid spatial size of offset, expected height: %d width: %d, but " "invalid spatial size of offset, expected height: %d width: %d, but "
"got height: %d width: %d", "got height: %d width: %d",
outputHeight, outputWidth, offset.size(2), offset.size(3)); outputHeight, outputWidth, offset.size(2), offset.size(3));
AT_CHECK((offset.size(1) == deformable_group * 2 * kH * kW), TORCH_CHECK((offset.size(1) == deformable_group * 2 * kH * kW),
"invalid number of channels of offset"); "invalid number of channels of offset");
if (gradOutput != NULL) { if (gradOutput != NULL) {
AT_CHECK(gradOutput->size(dimf) == nOutputPlane, TORCH_CHECK(gradOutput->size(dimf) == nOutputPlane,
"invalid number of gradOutput planes, expected: %d, but got: %d", "invalid number of gradOutput planes, expected: %d, but got: %d",
nOutputPlane, gradOutput->size(dimf)); nOutputPlane, gradOutput->size(dimf));
AT_CHECK((gradOutput->size(dimh) == outputHeight && TORCH_CHECK((gradOutput->size(dimh) == outputHeight &&
gradOutput->size(dimw) == outputWidth), gradOutput->size(dimw) == outputWidth),
"invalid size of gradOutput, expected height: %d width: %d , but " "invalid size of gradOutput, expected height: %d width: %d , but "
"got height: %d width: %d", "got height: %d width: %d",
...@@ -191,7 +191,7 @@ int deform_conv_forward_cuda(at::Tensor input, at::Tensor weight, ...@@ -191,7 +191,7 @@ int deform_conv_forward_cuda(at::Tensor input, at::Tensor weight,
long outputHeight = long outputHeight =
(inputHeight + 2 * padH - (dilationH * (kH - 1) + 1)) / dH + 1; (inputHeight + 2 * padH - (dilationH * (kH - 1) + 1)) / dH + 1;
AT_CHECK((offset.size(0) == batchSize), "invalid batch size of offset"); TORCH_CHECK((offset.size(0) == batchSize), "invalid batch size of offset");
output = output.view({batchSize / im2col_step, im2col_step, nOutputPlane, output = output.view({batchSize / im2col_step, im2col_step, nOutputPlane,
outputHeight, outputWidth}); outputHeight, outputWidth});
...@@ -298,7 +298,7 @@ int deform_conv_backward_input_cuda(at::Tensor input, at::Tensor offset, ...@@ -298,7 +298,7 @@ int deform_conv_backward_input_cuda(at::Tensor input, at::Tensor offset,
long outputHeight = long outputHeight =
(inputHeight + 2 * padH - (dilationH * (kH - 1) + 1)) / dH + 1; (inputHeight + 2 * padH - (dilationH * (kH - 1) + 1)) / dH + 1;
AT_CHECK((offset.size(0) == batchSize), 3, "invalid batch size of offset"); TORCH_CHECK((offset.size(0) == batchSize), 3, "invalid batch size of offset");
gradInput = gradInput.view({batchSize, nInputPlane, inputHeight, inputWidth}); gradInput = gradInput.view({batchSize, nInputPlane, inputHeight, inputWidth});
columns = at::zeros( columns = at::zeros(
{nInputPlane * kW * kH, im2col_step * outputHeight * outputWidth}, {nInputPlane * kW * kH, im2col_step * outputHeight * outputWidth},
...@@ -414,7 +414,7 @@ int deform_conv_backward_parameters_cuda( ...@@ -414,7 +414,7 @@ int deform_conv_backward_parameters_cuda(
long outputHeight = long outputHeight =
(inputHeight + 2 * padH - (dilationH * (kH - 1) + 1)) / dH + 1; (inputHeight + 2 * padH - (dilationH * (kH - 1) + 1)) / dH + 1;
AT_CHECK((offset.size(0) == batchSize), "invalid batch size of offset"); TORCH_CHECK((offset.size(0) == batchSize), "invalid batch size of offset");
columns = at::zeros( columns = at::zeros(
{nInputPlane * kW * kH, im2col_step * outputHeight * outputWidth}, {nInputPlane * kW * kH, im2col_step * outputHeight * outputWidth},
...@@ -494,8 +494,8 @@ void modulated_deform_conv_cuda_forward( ...@@ -494,8 +494,8 @@ void modulated_deform_conv_cuda_forward(
const int pad_h, const int pad_w, const int dilation_h, const int pad_h, const int pad_w, const int dilation_h,
const int dilation_w, const int group, const int deformable_group, const int dilation_w, const int group, const int deformable_group,
const bool with_bias) { const bool with_bias) {
AT_CHECK(input.is_contiguous(), "input tensor has to be contiguous"); TORCH_CHECK(input.is_contiguous(), "input tensor has to be contiguous");
AT_CHECK(weight.is_contiguous(), "weight tensor has to be contiguous"); TORCH_CHECK(weight.is_contiguous(), "weight tensor has to be contiguous");
at::DeviceGuard guard(input.device()); at::DeviceGuard guard(input.device());
const int batch = input.size(0); const int batch = input.size(0);
...@@ -576,8 +576,8 @@ void modulated_deform_conv_cuda_backward( ...@@ -576,8 +576,8 @@ void modulated_deform_conv_cuda_backward(
int kernel_h, int kernel_w, int stride_h, int stride_w, int pad_h, int kernel_h, int kernel_w, int stride_h, int stride_w, int pad_h,
int pad_w, int dilation_h, int dilation_w, int group, int deformable_group, int pad_w, int dilation_h, int dilation_w, int group, int deformable_group,
const bool with_bias) { const bool with_bias) {
AT_CHECK(input.is_contiguous(), "input tensor has to be contiguous"); TORCH_CHECK(input.is_contiguous(), "input tensor has to be contiguous");
AT_CHECK(weight.is_contiguous(), "weight tensor has to be contiguous"); TORCH_CHECK(weight.is_contiguous(), "weight tensor has to be contiguous");
at::DeviceGuard guard(input.device()); at::DeviceGuard guard(input.device());
const int batch = input.size(0); const int batch = input.size(0);
......
...@@ -33,7 +33,7 @@ void deform_psroi_pooling_cuda_forward( ...@@ -33,7 +33,7 @@ void deform_psroi_pooling_cuda_forward(
at::Tensor top_count, const int no_trans, const float spatial_scale, at::Tensor top_count, const int no_trans, const float spatial_scale,
const int output_dim, const int group_size, const int pooled_size, const int output_dim, const int group_size, const int pooled_size,
const int part_size, const int sample_per_part, const float trans_std) { const int part_size, const int sample_per_part, const float trans_std) {
AT_CHECK(input.is_contiguous(), "input tensor has to be contiguous"); TORCH_CHECK(input.is_contiguous(), "input tensor has to be contiguous");
at::DeviceGuard guard(input.device()); at::DeviceGuard guard(input.device());
const int batch = input.size(0); const int batch = input.size(0);
...@@ -59,8 +59,8 @@ void deform_psroi_pooling_cuda_backward( ...@@ -59,8 +59,8 @@ void deform_psroi_pooling_cuda_backward(
const int no_trans, const float spatial_scale, const int output_dim, const int no_trans, const float spatial_scale, const int output_dim,
const int group_size, const int pooled_size, const int part_size, const int group_size, const int pooled_size, const int part_size,
const int sample_per_part, const float trans_std) { const int sample_per_part, const float trans_std) {
AT_CHECK(out_grad.is_contiguous(), "out_grad tensor has to be contiguous"); TORCH_CHECK(out_grad.is_contiguous(), "out_grad tensor has to be contiguous");
AT_CHECK(input.is_contiguous(), "input tensor has to be contiguous"); TORCH_CHECK(input.is_contiguous(), "input tensor has to be contiguous");
at::DeviceGuard guard(input.device()); at::DeviceGuard guard(input.device());
const int batch = input.size(0); const int batch = input.size(0);
......
...@@ -17,9 +17,9 @@ int MaskedCol2imForwardLaucher(const at::Tensor col, const int height, ...@@ -17,9 +17,9 @@ int MaskedCol2imForwardLaucher(const at::Tensor col, const int height,
const at::Tensor mask_w_idx, const int mask_cnt, const at::Tensor mask_w_idx, const int mask_cnt,
at::Tensor im); at::Tensor im);
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x, " must be a CUDAtensor ") #define CHECK_CUDA(x) TORCH_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CONTIGUOUS(x) \ #define CHECK_CONTIGUOUS(x) \
AT_CHECK(x.is_contiguous(), #x, " must be contiguous ") TORCH_CHECK(x.is_contiguous(), #x, " must be contiguous ")
#define CHECK_INPUT(x) \ #define CHECK_INPUT(x) \
CHECK_CUDA(x); \ CHECK_CUDA(x); \
CHECK_CONTIGUOUS(x) CHECK_CONTIGUOUS(x)
......
// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. // Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
#include <torch/extension.h> #include <torch/extension.h>
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x, " must be a CUDAtensor ") #define CHECK_CUDA(x) TORCH_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
at::Tensor nms_cuda(const at::Tensor boxes, float nms_overlap_thresh); at::Tensor nms_cuda(const at::Tensor boxes, float nms_overlap_thresh);
......
...@@ -19,9 +19,9 @@ int ROIAlignBackwardLaucher(const at::Tensor top_grad, const at::Tensor rois, ...@@ -19,9 +19,9 @@ int ROIAlignBackwardLaucher(const at::Tensor top_grad, const at::Tensor rois,
const int pooled_height, const int pooled_width, const int pooled_height, const int pooled_width,
at::Tensor bottom_grad); at::Tensor bottom_grad);
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x, " must be a CUDAtensor ") #define CHECK_CUDA(x) TORCH_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CONTIGUOUS(x) \ #define CHECK_CONTIGUOUS(x) \
AT_CHECK(x.is_contiguous(), #x, " must be contiguous ") TORCH_CHECK(x.is_contiguous(), #x, " must be contiguous ")
#define CHECK_INPUT(x) \ #define CHECK_INPUT(x) \
CHECK_CUDA(x); \ CHECK_CUDA(x); \
CHECK_CONTIGUOUS(x) CHECK_CONTIGUOUS(x)
......
...@@ -16,9 +16,9 @@ int ROIPoolBackwardLaucher(const at::Tensor top_grad, const at::Tensor rois, ...@@ -16,9 +16,9 @@ int ROIPoolBackwardLaucher(const at::Tensor top_grad, const at::Tensor rois,
const int num_rois, const int pooled_h, const int num_rois, const int pooled_h,
const int pooled_w, at::Tensor bottom_grad); const int pooled_w, at::Tensor bottom_grad);
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x, " must be a CUDAtensor ") #define CHECK_CUDA(x) TORCH_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CONTIGUOUS(x) \ #define CHECK_CONTIGUOUS(x) \
AT_CHECK(x.is_contiguous(), #x, " must be contiguous ") TORCH_CHECK(x.is_contiguous(), #x, " must be contiguous ")
#define CHECK_INPUT(x) \ #define CHECK_INPUT(x) \
CHECK_CUDA(x); \ CHECK_CUDA(x); \
CHECK_CONTIGUOUS(x) CHECK_CONTIGUOUS(x)
......
...@@ -30,7 +30,7 @@ at::Tensor SigmoidFocalLoss_backward(const at::Tensor &logits, ...@@ -30,7 +30,7 @@ at::Tensor SigmoidFocalLoss_backward(const at::Tensor &logits,
const at::Tensor &d_losses, const at::Tensor &d_losses,
const int num_classes, const float gamma, const int num_classes, const float gamma,
const float alpha) { const float alpha) {
if (logits.type().is_cuda()) { if (logits.is_cuda()) {
return SigmoidFocalLoss_backward_cuda(logits, targets, d_losses, return SigmoidFocalLoss_backward_cuda(logits, targets, d_losses,
num_classes, gamma, alpha); num_classes, gamma, alpha);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment