Skip to content

Commit

Permalink
Merge ca99d17 into 7156604
Browse files Browse the repository at this point in the history
  • Loading branch information
ckirchhoff2021 authored Jan 12, 2023
2 parents 7156604 + ca99d17 commit 98b291e
Show file tree
Hide file tree
Showing 21 changed files with 795 additions and 148 deletions.
118 changes: 59 additions & 59 deletions docs/en/understand_mmcv/ops.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,62 +2,62 @@

We implement common ops used in detection, segmentation, etc.

| Device | CPU | CUDA | MLU | MPS |
| ---------------------------- | --- | ---- | --- | --- |
| ActiveRotatedFilter ||| | |
| AssignScoreWithK | || | |
| BallQuery | || | |
| BBoxOverlaps | ||||
| BorderAlign | || | |
| BoxIouRotated ||| | |
| BoxIouQuadri ||| | |
| CARAFE | ||| |
| ChamferDistance | || | |
| CrissCrossAttention | || | |
| ContourExpand || | | |
| ConvexIoU | || | |
| CornerPool | || | |
| Correlation | || | |
| Deformable Convolution v1/v2 ||| | |
| Deformable RoIPool | ||| |
| DiffIoURotated | || | |
| DynamicScatter | || | |
| FurthestPointSample | || | |
| FurthestPointSampleWithDist | || | |
| FusedBiasLeakyrelu | || | |
| GatherPoints | || | |
| GroupPoints | || | |
| Iou3d | ||| |
| KNN | || | |
| MaskedConv | ||| |
| MergeCells | || | |
| MinAreaPolygon | || | |
| ModulatedDeformConv2d ||| | |
| MultiScaleDeformableAttn | ||| |
| NMS |||| |
| NMSRotated ||| | |
| NMSQuadri ||| | |
| PixelGroup || | | |
| PointsInBoxes ||| | |
| PointsInPolygons | || | |
| PSAMask |||| |
| RotatedFeatureAlign ||| | |
| RoIPointPool3d | ||| |
| RoIPool | ||| |
| RoIAlignRotated |||| |
| RiRoIAlignRotated | || | |
| RoIAlign |||| |
| RoIAwarePool3d | ||| |
| SAConv2d | || | |
| SigmoidFocalLoss | ||| |
| SoftmaxFocalLoss | || | |
| SoftNMS | || | |
| Sparse Convolution | || | |
| Synchronized BatchNorm | || | |
| ThreeInterpolate | || | |
| ThreeNN | ||| |
| TINShift | ||| |
| UpFirDn2d | || | |
| Voxelization ||| | |
| PrRoIPool | || | |
| BezierAlign ||| | |
| Device | CPU | CUDA | MLU | MPS | Ascend |
| ---------------------------- | --- | ---- | --- | --- | ------ |
| ActiveRotatedFilter ||| | | |
| AssignScoreWithK | || | | |
| BallQuery | || | | |
| BBoxOverlaps | |||| |
| BorderAlign | || | | |
| BoxIouRotated ||| | | |
| BoxIouQuadri ||| | | |
| CARAFE | ||| | |
| ChamferDistance | || | | |
| CrissCrossAttention | || | | |
| ContourExpand || | | | |
| ConvexIoU | || | | |
| CornerPool | || | | |
| Correlation | || | | |
| Deformable Convolution v1/v2 ||| | ||
| Deformable RoIPool | ||| ||
| DiffIoURotated | || | | |
| DynamicScatter | || | | |
| FurthestPointSample | || | | |
| FurthestPointSampleWithDist | || | | |
| FusedBiasLeakyrelu | || | ||
| GatherPoints | || | | |
| GroupPoints | || | | |
| Iou3d | ||| | |
| KNN | || | | |
| MaskedConv | ||| ||
| MergeCells | || | | |
| MinAreaPolygon | || | | |
| ModulatedDeformConv2d ||| | ||
| MultiScaleDeformableAttn | ||| | |
| NMS |||| ||
| NMSRotated ||| | | |
| NMSQuadri ||| | | |
| PixelGroup || | | | |
| PointsInBoxes ||| | | |
| PointsInPolygons | || | | |
| PSAMask |||| ||
| RotatedFeatureAlign ||| | | |
| RoIPointPool3d | ||| | |
| RoIPool | ||| ||
| RoIAlignRotated |||| | |
| RiRoIAlignRotated | || | | |
| RoIAlign |||| | |
| RoIAwarePool3d | ||| | |
| SAConv2d | || | | |
| SigmoidFocalLoss | ||| ||
| SoftmaxFocalLoss | || | ||
| SoftNMS | || | | |
| Sparse Convolution | || | | |
| Synchronized BatchNorm | || | | |
| ThreeInterpolate | || | | |
| ThreeNN | ||| | |
| TINShift | ||| | |
| UpFirDn2d | || | | |
| Voxelization ||| | | |
| PrRoIPool | || | | |
| BezierAlign ||| | | |
118 changes: 59 additions & 59 deletions docs/zh_cn/understand_mmcv/ops.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,62 +2,62 @@

MMCV 提供了检测、分割等任务中常用的算子

| Device | CPU | CUDA | MLU | MPS |
| ---------------------------- | --- | ---- | --- | --- |
| ActiveRotatedFilter ||| | |
| AssignScoreWithK | || | |
| BallQuery | || | |
| BBoxOverlaps | ||||
| BorderAlign | || | |
| BoxIouRotated ||| | |
| BoxIouQuadri ||| | |
| CARAFE | ||| |
| ChamferDistance | || | |
| CrissCrossAttention | || | |
| ContourExpand || | | |
| ConvexIoU | || | |
| CornerPool | || | |
| Correlation | || | |
| Deformable Convolution v1/v2 ||| | |
| Deformable RoIPool | ||| |
| DiffIoURotated | || | |
| DynamicScatter | || | |
| FurthestPointSample | || | |
| FurthestPointSampleWithDist | || | |
| FusedBiasLeakyrelu | || | |
| GatherPoints | || | |
| GroupPoints | || | |
| Iou3d | ||| |
| KNN | || | |
| MaskedConv | ||| |
| MergeCells | || | |
| MinAreaPolygon | || | |
| ModulatedDeformConv2d ||| | |
| MultiScaleDeformableAttn | ||| |
| NMS |||| |
| NMSRotated ||| | |
| NMSQuadri ||| | |
| PixelGroup || | | |
| PointsInBoxes ||| | |
| PointsInPolygons | || | |
| PSAMask |||| |
| RotatedFeatureAlign ||| | |
| RoIPointPool3d | ||| |
| RoIPool | ||| |
| RoIAlignRotated |||| |
| RiRoIAlignRotated | || | |
| RoIAlign |||| |
| RoIAwarePool3d | ||| |
| SAConv2d | || | |
| SigmoidFocalLoss | ||| |
| SoftmaxFocalLoss | || | |
| SoftNMS | || | |
| Sparse Convolution | || | |
| Synchronized BatchNorm | || | |
| ThreeInterpolate | || | |
| ThreeNN | ||| |
| TINShift | ||| |
| UpFirDn2d | || | |
| Voxelization ||| | |
| PrRoIPool | || | |
| BezierAlign ||| | |
| Device | CPU | CUDA | MLU | MPS | Ascend |
| ---------------------------- | --- | ---- | --- | --- | ------ |
| ActiveRotatedFilter ||| | | |
| AssignScoreWithK | || | | |
| BallQuery | || | | |
| BBoxOverlaps | |||| |
| BorderAlign | || | | |
| BoxIouRotated ||| | | |
| BoxIouQuadri ||| | | |
| CARAFE | ||| | |
| ChamferDistance | || | | |
| CrissCrossAttention | || | | |
| ContourExpand || | | | |
| ConvexIoU | || | | |
| CornerPool | || | | |
| Correlation | || | | |
| Deformable Convolution v1/v2 ||| | ||
| Deformable RoIPool | ||| ||
| DiffIoURotated | || | | |
| DynamicScatter | || | | |
| FurthestPointSample | || | | |
| FurthestPointSampleWithDist | || | | |
| FusedBiasLeakyrelu | || | ||
| GatherPoints | || | | |
| GroupPoints | || | | |
| Iou3d | ||| | |
| KNN | || | | |
| MaskedConv | ||| ||
| MergeCells | || | | |
| MinAreaPolygon | || | | |
| ModulatedDeformConv2d ||| | ||
| MultiScaleDeformableAttn | ||| | |
| NMS |||| ||
| NMSRotated ||| | | |
| NMSQuadri ||| | | |
| PixelGroup || | | | |
| PointsInBoxes ||| | | |
| PointsInPolygons | || | | |
| PSAMask |||| ||
| RotatedFeatureAlign ||| | | |
| RoIPointPool3d | ||| | |
| RoIPool | ||| ||
| RoIAlignRotated |||| | |
| RiRoIAlignRotated | || | | |
| RoIAlign |||| | |
| RoIAwarePool3d | ||| | |
| SAConv2d | || | | |
| SigmoidFocalLoss | ||| ||
| SoftmaxFocalLoss | || | ||
| SoftNMS | || | | |
| Sparse Convolution | || | | |
| Synchronized BatchNorm | || | | |
| ThreeInterpolate | || | | |
| ThreeNN | ||| | |
| TINShift | ||| | |
| UpFirDn2d | || | | |
| Voxelization ||| | | |
| PrRoIPool | || | | |
| BezierAlign ||| | | |
35 changes: 35 additions & 0 deletions mmcv/ops/csrc/common/pytorch_npu_helper.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/******************************************************************************
* Copyright (c) 2022 Huawei Technologies Co., Ltd
* All rights reserved.
*
* Licensed under the BSD 3-Clause License (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://opensource.org/licenses/BSD-3-Clause
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/

#ifndef PYTORCH_NPU_HELPER_HPP_
#define PYTORCH_NPU_HELPER_HPP_

#include <torch_npu/csrc/aten/NPUNativeFunctions.h>
#include <torch_npu/csrc/framework/utils/CalcuOpUtil.h>
#include <torch_npu/csrc/framework/utils/OpAdapter.h>

#include "pytorch_cpp_helper.hpp"
#include "pytorch_device_registry.hpp"

#define NPU_NAME_SPACE at_npu::native

#define REGISTER_NPU_IMPL(key, value) REGISTER_DEVICE_IMPL(key, XLA, value)

#define CHECK_NPU(x) \
TORCH_CHECK(x.device().type() == at::kXLA, #x " must be a NPU tensor")

#endif // PYTORCH_NPU_HELPER_HPP_
63 changes: 63 additions & 0 deletions mmcv/ops/csrc/pytorch/npu/deform_roi_pool.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#include "pytorch_npu_helper.hpp"

using namespace NPU_NAME_SPACE;
using namespace std;

void deform_roi_pool_forward_impl(Tensor input, Tensor rois, Tensor offset,
Tensor output, int pooled_height,
int pooled_width, float spatial_scale,
int sampling_ratio, float gamma);

void deform_roi_pool_backward_impl(Tensor grad_output, Tensor input,
Tensor rois, Tensor offset,
Tensor grad_input, Tensor grad_offset,
int pooled_height, int pooled_width,
float spatial_scale, int sampling_ratio,
float gamma);

void deform_roi_pool_forward_npu(Tensor input, Tensor rois, Tensor offset,
Tensor output, int pooled_height,
int pooled_width, float spatial_scale,
int sampling_ratio, float gamma) {
c10::SmallVector<int64_t, 2> output_sizes = {pooled_height, pooled_width};
at::IntArrayRef output_size = at::IntArrayRef(output_sizes);
int64_t sampling_ratio_ = (int64_t)sampling_ratio;
OpCommand cmd;
cmd.Name("DeformableRoiPool")
.Input(input)
.Input(rois)
.Input(offset)
.Output(output)
.Attr("spatial_scale", spatial_scale)
.Attr("output_size", output_size)
.Attr("sampling_ratio", sampling_ratio_)
.Attr("gamma", gamma)
.Run();
}

void deform_roi_pool_backward_npu(Tensor grad_output, Tensor input, Tensor rois,
Tensor offset, Tensor grad_input,
Tensor grad_offset, int pooled_height,
int pooled_width, float spatial_scale,
int sampling_ratio, float gamma) {
c10::SmallVector<int64_t, 2> output_sizes = {pooled_height, pooled_width};
at::IntArrayRef output_size = at::IntArrayRef(output_sizes);
int64_t sampling_ratio_ = (int64_t)sampling_ratio;
OpCommand cmd;
cmd.Name("DeformableRoiPoolGrad")
.Input(grad_input)
.Input(input)
.Input(rois)
.Input(offset)
.Output(grad_output)
.Output(grad_offset)
.Attr("output_size", output_size)
.Attr("spatial_scale", spatial_scale)
.Attr("sample_ratio", sampling_ratio_)
.Attr("gamma", gamma)
.Run();
}

REGISTER_NPU_IMPL(deform_roi_pool_forward_impl, deform_roi_pool_forward_npu);

REGISTER_NPU_IMPL(deform_roi_pool_backward_impl, deform_roi_pool_backward_npu);
Loading

0 comments on commit 98b291e

Please sign in to comment.