Skip to content

Commit b8236b7

Browse files
authored
Move slice to phi (#40736)
* move slice to pten * merge develop; test=develop * fix slice bug; * update * update * fix error * update * fix bug * polish code * polish code * polish code * try to fix windows bug * add gpu compile flag; * try to fix * remov template; * polish code; * fix npu bug; * fix npu bug * fix npu bug; test=develop * fix slice bug; * remove no need dep
1 parent 0ad2e19 commit b8236b7

File tree

23 files changed

+1019
-418
lines changed

23 files changed

+1019
-418
lines changed

paddle/fluid/framework/new_executor/standalone_executor_test.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ PD_DECLARE_KERNEL(sum, GPU, ALL_LAYOUT);
8181
PD_DECLARE_KERNEL(sum_grad, GPU, ALL_LAYOUT);
8282
PD_DECLARE_KERNEL(max_raw, GPU, ALL_LAYOUT);
8383
PD_DECLARE_KERNEL(sgd, GPU, ALL_LAYOUT);
84+
PD_DECLARE_KERNEL(slice, GPU, ALL_LAYOUT);
85+
PD_DECLARE_KERNEL(slice_grad, GPU, ALL_LAYOUT);
8486

8587
DECLARE_double(eager_delete_tensor_gb);
8688

paddle/fluid/operators/lu_op.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,12 @@ void SetValueCompute(const framework::ExecutionContext& ctx,
4242
auto dtype = framework::TransToProtoVarType(in->dtype());
4343

4444
auto in_dims = in->dims();
45-
CheckAndUpdateSliceAttrs<int64_t>(in_dims, axes, starts, ends, &steps);
46-
auto slice_dims = GetSliceDims(in_dims, axes, *starts, *ends, &steps);
47-
auto decrease_slice_dims = GetDecreasedDims(slice_dims, decrease_axes);
45+
phi::funcs::CheckAndUpdateSliceAttrs<int64_t>(in_dims, axes, starts, ends,
46+
&steps);
47+
auto slice_dims =
48+
phi::funcs::GetSliceDims(in_dims, axes, *starts, *ends, &steps);
49+
auto decrease_slice_dims =
50+
phi::funcs::GetDecreasedDims(slice_dims, decrease_axes);
4851

4952
auto slice_dims_for_assign = decrease_slice_dims;
5053
if (!none_axes.empty()) {
@@ -282,10 +285,10 @@ void SliceCompute(const framework::ExecutionContext& ctx,
282285
}
283286
}
284287

285-
CheckAndUpdateSliceAttrs(in_dims, axes, &starts, &ends);
286-
slice_dims =
287-
GetSliceDims<int64_t>(in_dims, axes, starts, ends, nullptr, nullptr);
288-
out_dims = GetDecreasedDims(slice_dims, decrease_axis);
288+
phi::funcs::CheckAndUpdateSliceAttrs(in_dims, axes, &starts, &ends);
289+
slice_dims = phi::funcs::GetSliceDims<int64_t>(in_dims, axes, starts, ends,
290+
nullptr, nullptr);
291+
out_dims = phi::funcs::GetDecreasedDims(slice_dims, decrease_axis);
289292

290293
// 2.2 Get output
291294
auto offsets = Eigen::DSizes<Eigen::DenseIndex, D>();

paddle/fluid/operators/set_value_op.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
#include "paddle/fluid/framework/op_registry.h"
2323
#include "paddle/fluid/framework/tensor_util.h"
2424
#include "paddle/fluid/operators/assign_value_op.h"
25-
#include "paddle/fluid/operators/slice_utils.h"
25+
#include "paddle/fluid/operators/eigen/eigen_function.h"
26+
#include "paddle/fluid/operators/elementwise/elementwise_op_function.h"
2627
#include "paddle/fluid/operators/utils.h"
2728
#include "paddle/fluid/platform/enforce.h"
29+
#include "paddle/phi/kernels/funcs/slice_utils.h"
2830

2931
namespace paddle {
3032
namespace operators {

paddle/fluid/operators/set_value_op_npu.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ limitations under the License. */
1515
#include "paddle/fluid/operators/set_value_op.h"
1616
#include "paddle/fluid/platform/device/npu/npu_op_runner.h"
1717

18+
#include "paddle/phi/kernels/funcs/slice_utils.h"
19+
1820
namespace paddle {
1921
namespace operators {
2022

@@ -51,9 +53,11 @@ class SetValueNPUKernel : public framework::OpKernel<T> {
5153
}
5254

5355
auto in_dims = in->dims();
54-
CheckAndUpdateSliceAttrs(in_dims, axes, &starts, &ends, &steps);
55-
auto slice_dims = GetSliceDims(in_dims, axes, starts, ends, &steps);
56-
auto decrease_slice_dims = GetDecreasedDims(slice_dims, decrease_axes);
56+
phi::funcs::CheckAndUpdateSliceAttrs(in_dims, axes, &starts, &ends, &steps);
57+
auto slice_dims =
58+
phi::funcs::GetSliceDims(in_dims, axes, starts, ends, &steps);
59+
auto decrease_slice_dims =
60+
phi::funcs::GetDecreasedDims(slice_dims, decrease_axes);
5761

5862
auto slice_dims_for_assign = decrease_slice_dims;
5963
if (!none_axes.empty()) {

paddle/fluid/operators/slice_op.cc

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License. */
1717
#include <memory>
1818
#include <string>
1919
#include <vector>
20+
#include "paddle/phi/kernels/funcs/slice_utils.h"
2021

2122
namespace paddle {
2223
namespace operators {
@@ -101,15 +102,17 @@ class SliceOp : public framework::OperatorWithKernel {
101102
"The size of ends must be equal to the size of axes."));
102103
}
103104

104-
CheckAndUpdateSliceAttrs<int>(in_dims, axes, &starts, &ends, nullptr,
105-
&infer_flags);
105+
phi::funcs::CheckAndUpdateSliceAttrs<int>(in_dims, axes, &starts, &ends,
106+
nullptr, &infer_flags);
106107

107-
auto slice_dims =
108-
GetSliceDims<int>(in_dims, axes, starts, ends, nullptr, &infer_flags);
108+
auto slice_dims = phi::funcs::GetSliceDims<int>(in_dims, axes, starts, ends,
109+
nullptr, &infer_flags);
109110
if (ctx->IsRuntime()) {
110-
out_dims = GetDecreasedDims<int>(slice_dims, decrease_axis, &infer_flags);
111+
out_dims = phi::funcs::GetDecreasedDims<int>(slice_dims, decrease_axis,
112+
&infer_flags);
111113
} else {
112-
out_dims = GetDecreasedDims<int>(slice_dims, decrease_axis, nullptr);
114+
out_dims =
115+
phi::funcs::GetDecreasedDims<int>(slice_dims, decrease_axis, nullptr);
113116
}
114117

115118
ctx->SetOutputDim("Out", out_dims);

0 commit comments

Comments
 (0)