Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a319455
mode
crazyxiaoxi Jul 26, 2024
86191e6
boxclip
crazyxiaoxi Jul 26, 2024
90aa9a6
test_op
crazyxiaoxi Jul 29, 2024
8a9ca8c
testop
crazyxiaoxi Jul 29, 2024
c25fede
margin_cross_entropy_op
crazyxiaoxi Jul 29, 2024
1190f7b
resolve conflict
crazyxiaoxi Jul 30, 2024
f14d22c
resolve conflict
crazyxiaoxi Jul 30, 2024
7a8d74f
resolve conflict
crazyxiaoxi Jul 30, 2024
a559de4
testop
crazyxiaoxi Jul 30, 2024
43ff6e9
testop
crazyxiaoxi Jul 30, 2024
43d5ce5
testop
crazyxiaoxi Jul 30, 2024
313c60a
tensor
crazyxiaoxi Aug 1, 2024
6380d80
fix
crazyxiaoxi Aug 1, 2024
a8ab8ac
fix
crazyxiaoxi Aug 2, 2024
1c7d7ec
test
crazyxiaoxi Aug 2, 2024
f4c5a12
fix problem
crazyxiaoxi Aug 5, 2024
f086511
Merge branch 'develop' into cinn/boxclip
crazyxiaoxi Aug 5, 2024
1c4e9aa
fix equal
crazyxiaoxi Aug 5, 2024
217614f
Update unused viriable
crazyxiaoxi Aug 6, 2024
69c72a5
static check
crazyxiaoxi Aug 6, 2024
591ae2e
rerun
crazyxiaoxi Aug 6, 2024
2ef4ce1
add cstr
crazyxiaoxi Aug 6, 2024
58f5989
Merge branch 'develop' into cinn/boxclip
crazyxiaoxi Aug 6, 2024
1f86f70
fix small problem
crazyxiaoxi Aug 6, 2024
d6b9b1d
equal constrain
crazyxiaoxi Aug 6, 2024
4e8ccc0
Merge branch 'develop' into cinn/margin
crazyxiaoxi Aug 6, 2024
1fecfe5
change
crazyxiaoxi Aug 6, 2024
520141f
Merge branch 'develop' into cinn/margin
crazyxiaoxi Aug 7, 2024
6f64112
codestyle
crazyxiaoxi Aug 7, 2024
a3d35d8
fix error
crazyxiaoxi Aug 8, 2024
d1b6a03
Merge branch 'develop' into cinn/mode
crazyxiaoxi Aug 9, 2024
569964f
Merge branch 'develop' into cinn/boxclip
crazyxiaoxi Aug 9, 2024
cdb5a9c
comment fix
crazyxiaoxi Aug 9, 2024
c24e47a
fix comment
crazyxiaoxi Aug 9, 2024
9f19580
fix
crazyxiaoxi Aug 9, 2024
7609187
CI presure
crazyxiaoxi Aug 9, 2024
b5c30b0
ci pressure
crazyxiaoxi Aug 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,33 @@ bool AllcloseOpInferSymbolicShape(
return true;
}

bool BoxClipOpInferSymbolicShape(
pir::Operation *op, pir::InferSymbolicShapeContext *infer_context) {
const auto &input_shape =
infer_context->GetShapeOrDataForValue(op->operand_source(0)).shape();
const auto &im_info_shape =
infer_context->GetShapeOrDataForValue(op->operand_source(1)).shape();

// Check rank and dimensions of input tensors
const auto &three = symbol::DimExpr{3};
const auto &four = symbol::DimExpr{4};
infer_context->AddEqualCstr(input_shape[input_shape.size() - 1], four);
PADDLE_ENFORCE_EQ(im_info_shape.size(),
2,
common::errors::InvalidArgument(
"The rank of Input(im_info) in BoxClipOp must be 2. "
"But received rank = %d",
im_info_shape.size()));
infer_context->AddEqualCstr(im_info_shape[1], three);

infer_context->SetShapeOrDataForValue(
op->result(0),
symbol::ShapeOrDataDimExprs{
symbol::TensorShapeOrDataDimExprs(input_shape)});

return true;
}

bool Atan2OpInferSymbolicShape(pir::Operation *op,
pir::InferSymbolicShapeContext *infer_context) {
const auto x_shape =
Expand Down Expand Up @@ -748,6 +775,46 @@ bool MatmulOpInferSymbolicShape(pir::Operation *op,
return true;
}

bool MarginCrossEntropyOpInferSymbolicShape(
pir::Operation *op, pir::InferSymbolicShapeContext *infer_context) {
const auto &logits_shape_or_data =
infer_context->GetShapeOrDataForValue(op->operand_source(0));
const auto &labels_shape_or_data =
infer_context->GetShapeOrDataForValue(op->operand_source(1));

std::vector<symbol::DimExpr> logits_dims = logits_shape_or_data.shape();
std::vector<symbol::DimExpr> labels_dims = labels_shape_or_data.shape();

size_t logits_rank = logits_dims.size();
auto axis = logits_rank - 1;

for (size_t i = 0; i < logits_rank; i++) {
if (i != axis) {
infer_context->AddEqualCstr(logits_dims[i], labels_dims[i]);
}
}

const auto &one = symbol::DimExpr{1};

if (labels_dims.size() > 1) {
infer_context->AddEqualCstr(labels_dims[axis - 1], one);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

infer meta里是检查labels_dims[logits_rank - 1]是否等于1,再确认下是否一致吧

Copy link
Contributor Author

@crazyxiaoxi crazyxiaoxi Aug 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

上面是infermeta的定义
截屏2024-08-12 11 39 34
检查labels_dims[logits_rank - 1]是否等于1

下面是opinfersymbolicshape
截屏2024-08-12 11 35 36

确实在写的时候不需要 ' axis-1' 只用axis = logits_rank -1

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

那下一个PR顺带修复一下吧,提的时候把这个PR链接带上

}

infer_context->SetShapeOrDataForValue(
op->result(0),
symbol::ShapeOrDataDimExprs{
symbol::TensorShapeOrDataDimExprs(logits_dims)});

logits_dims[axis] = symbol::DimExpr(1);

infer_context->SetShapeOrDataForValue(
op->result(1),
symbol::ShapeOrDataDimExprs{
symbol::TensorShapeOrDataDimExprs(logits_dims)});

return true;
}

bool MvOpInferSymbolicShape(pir::Operation *op,
pir::InferSymbolicShapeContext *infer_context) {
const auto &x_shape_or_data =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ OP_DECLARE_INFER_SYMBOLIC_SHAPE(Allclose)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Atan2)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(BceLoss)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(BceLoss_)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(BoxClip)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Binomial)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Binomial_)
// OP_DECLARE_INFER_SYMBOLIC_SHAPE(Bincount)
Expand Down Expand Up @@ -54,6 +55,7 @@ OP_DECLARE_INFER_SYMBOLIC_SHAPE(Kron)
// OP_DECLARE_INFER_SYMBOLIC_SHAPE(MatrixRankTol)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(MaskedSelect)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Matmul)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(MarginCrossEntropy)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Mv)
// OP_DECLARE_INFER_SYMBOLIC_SHAPE(Nextafter)
// OP_DECLARE_INFER_SYMBOLIC_SHAPE(PullBoxSparse)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1125,6 +1125,42 @@ bool MaxOpInferSymbolicShape(pir::Operation *op,

return details::ReduceInferDim(op, infer_context, axis, keepdim, reduce_all);
}
bool ModeOpInferSymbolicShape(pir::Operation *op,
pir::InferSymbolicShapeContext *infer_context) {
const auto &x_shape_or_data =
infer_context->GetShapeOrDataForValue(op->operand_source(0));
const auto &x_shape = x_shape_or_data.shape();

int axis = op->attribute<pir::Int32Attribute>("axis").data();
bool keepdim = op->attribute<pir::BoolAttribute>("keepdim").data();

int dim_size = x_shape.size();

if (axis < 0) {
axis += dim_size;
}

std::vector<symbol::DimExpr> out_dims;
for (int i = 0; i < axis; i++) {
out_dims.emplace_back(x_shape[i]);
}
if (keepdim && dim_size > 0) {
out_dims.emplace_back(symbol::DimExpr(1));
}
for (int i = axis + 1; i < dim_size; i++) {
out_dims.emplace_back(x_shape[i]);
}

symbol::TensorShapeOrDataDimExprs out_shape(out_dims);

infer_context->SetShapeOrDataForValue(op->result(0),
symbol::ShapeOrDataDimExprs{out_shape});

infer_context->SetShapeOrDataForValue(op->result(1),
symbol::ShapeOrDataDimExprs{out_shape});

return true;
}

bool MaxoutOpInferSymbolicShape(pir::Operation *op,
pir::InferSymbolicShapeContext *infer_context) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ OP_DECLARE_INFER_SYMBOLIC_SHAPE(L1Norm_)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(LpPool2d)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Logcumsumexp)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Logsumexp)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Mode)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Max)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Maxout)
OP_DECLARE_INFER_SYMBOLIC_SHAPE(Min)
Expand Down
3 changes: 3 additions & 0 deletions paddle/phi/ops/yaml/ops.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -652,6 +652,7 @@
func: BoxClipInferMeta
kernel:
func: box_clip
interfaces: paddle::dialect::InferSymbolicShapeInterface

- op : box_coder
args : (Tensor prior_box, Tensor prior_box_var, Tensor target_box, str code_type = "encode_center_size", bool box_normalized = true, int axis = 0, float[] variance = {})
Expand Down Expand Up @@ -3012,6 +3013,7 @@
func : margin_cross_entropy
data_type : logits
backward : margin_cross_entropy_grad
interfaces : paddle::dialect::InferSymbolicShapeInterface

- op : masked_multihead_attention_
args : (Tensor x, Tensor cache_kv, Tensor bias, Tensor src_mask, Tensor cum_offsets, Tensor sequence_lengths, Tensor rotary_tensor, Tensor beam_cache_offset, Tensor qkv_out_scale, Tensor out_shift, Tensor out_smooth, int seq_len, int rotary_emb_dims, bool use_neox_rotary_style=false, str compute_dtype = "default", float out_scale=-1, int quant_round_type=1, float quant_max_bound=127.0, float quant_min_bound=-127.0)
Expand Down Expand Up @@ -3231,6 +3233,7 @@
kernel :
func : mode
backward : mode_grad
interfaces : paddle::dialect::InferSymbolicShapeInterface

- op : momentum_
args : (Tensor param, Tensor grad, Tensor velocity, Tensor learning_rate, Tensor master_param, float mu, bool use_nesterov = false, str regularization_method = "", float regularization_coeff = 0.0f, bool multi_precision = false, float rescale_grad = 1.0f)
Expand Down