PaddlePaddle / Paddle

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
http://www.paddlepaddle.org/
Apache License 2.0
21.66k stars 5.44k forks source link

新IR Python API适配升级 #58067

Closed MarioLulab closed 4 months ago

MarioLulab commented 7 months ago

一、BackGround 📚

任务背景:#55737,前期已发布的任务:#57097

⭐️ 提交PR 模版 ⭐️:

【PIR API adaptor No.100】 Migrate paddle.sin into pir
### PR types
Others

### PR changes
APIs

### Description

PIR API 推全升级
将 `paddle.sin` 迁移升级至 pir,并更新单测

单测覆盖率:6/8

TODO:目前缺少适配 `test/legacy_test/test_activation_nn_grad.py` 内
 `TestSinDoubleGradCheck` 和 `TestSinTripleGradCheck` 的单测。
原因是当前不支持 `gradient_checker.double_grad_check` 和 `gradient_checker.triple_grad_check` 在 pir 体系下运行,
具体的适配问题包括但不限于:目前缺少从 python 端获取 OpResult.name 的支持

后续做自动微分推全工作的时候,可以进行支持

注意事项:

PR 样板间 🥇

🏅 【PIR API adaptor No.54-56】Migrate some ops into pir 🏅 【PIR API adaptor No.24-26】Migrate paddle.bitwise_not/bitwise_or/bitwise_xor into pir 🏅 【PIR API adaptor No.139】 Migrate logsumexp into pir 🏅 【PIR API adaptor No.224】 Migrate paddle.tan 🏅 【PIR API adaptor No.27、29、102 】 Migrate bmm/broadcast_tensors/histogram into pir

奖励一览:

image

二、Task 🙋🏻‍♀️

💡 本期的任务建议尽量在11月30日之前完成 PR 合入~~

请大家以 comment 的形式认领任务,如:

【报名】:1、3、12-13

多个任务之间需要使用中文顿号分隔,报名多个连续任务可用横线表示,如 2-5 PR 提交格式:在 PR 的标题中以 【PIR API adaptor No.xxx】 开头,注明任务编号

本期需要升级的 API 如下:

序号 Python API/所在文件/单测覆盖率 认领人/状态/PR号 优先级 单测覆盖率
1 paddle.nn.L1Loss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58708
p1
2 paddle.Tensor.acos
python/paddle/tensor/ops.py
@MarioLulab #58317
p0 全(6/6)
3 paddle.Tensor.acosh
python/paddle/tensor/ops.py
@MarioLulab #58450
p0 全(6/6)
4 paddle.nn.functional.affine_grid
python/paddle/nn/functional/vision.py
@GreatV
@enkilee #59661
p1
5 paddle.Tensor.amax
python/paddle/tensor/math.py
@GreatV #58546
p1
6 paddle.Tensor.amin
python/paddle/tensor/math.py
@GreatV #58546
p1
7 paddle.Tensor.angle
python/paddle/tensor/math.py
@GreatV #58587
p1 5/5
8 paddle.Tensor.argmin
python/paddle/tensor/search.py
@GreatV
@0x45f #57909
p1
9 paddle.argsort
python/paddle/tensor/search.py
@GreatV
@enkilee #59661
p1
10 paddle.Tensor.as_complex
python/paddle/tensor/manipulation.py
@enkilee #58333
p1 全(2/2)
11 paddle.Tensor.as_real
python/paddle/tensor/manipulation.py
@enkilee #58333
p1 全(2/2)
12 paddle.Tensor.asin
python/paddle/tensor/ops.py
@MarioLulab #58470
p0
13 paddle.Tensor.asinh
python/paddle/tensor/ops.py
@MarioLulab #58470
p0
14 paddle.nn.initializer.Assign
python/paddle/nn/initializer/assign.py
@Liyulingyue #58876
@MarioLulab #60114
p1 3/3
15 paddle.nn.initializer.Bilinear
python/paddle/nn/initializer/Bilinear.py
@Liyulingyue #58876
@MarioLulab #60114
p1 1/1
16 paddle.Tensor.atan
python/paddle/tensor/ops.py
@MarioLulab #58473
p0 6/6
17 paddle.atan2
python/paddle/tensor/math.py
@enkilee #58718
p1 7/7
18 paddle.Tensor.atanh
python/paddle/tensor/ops.py
@MarioLulab #58473
p0 6/6
19 paddle.incubate.ModelAverage
python/paddle/incubate/optimizer/modelaverage.py
@ooooo-create #59615
p1
20 paddle.nn.BCELoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58708
p1
21 paddle.bernoulli
python/paddle/tensor/random.py
@Liyulingyue #58877
p1 2/2
22 paddle.nn.functional.bilinear
python/paddle/nn/functional/common.py
@GreatV #58690
p1 1/1
23 paddle.Tensor.bincount
python/paddle/tensor/linalg.py
@DrRyanHuang
@GreatV #58692
p1 10/10
24 paddle.Tensor.bitwise_not
python/paddle/tensor/logic.py
@enkilee #58331
p0 全(6/6)
25 paddle.Tensor.bitwise_or
python/paddle/tensor/logic.py
@enkilee #58331
p0 全(8/8)
26 paddle.Tensor.bitwise_xor
python/paddle/tensor/logic.py
@enkilee #58331
p0 全(8/8)
27 paddle.Tensor.bmm
python/paddle/tensor/linalg.py
@DrRyanHuang #58833
p1
28 paddle.vision.ops.box_coder
python/paddle/vision/ops.py
@ooooo-create #59616
p1 6/7
29 paddle.Tensor.broadcast_tensors
python/paddle/tensor/manipulation.py
@DrRyanHuang #58689 #58833
p1 4/5
30 paddle.distribution.Cauchy
python/paddle/distribution/distribution.py
@Olive-2019
p1
31 paddle.distribution.Normal
python/paddle/distribution/normal.py
@ooooo-create #59910
p1
32 paddle.distribution.Uniform
python/paddle/distribution/uniform.py
@ooooo-create #60322
p1
33 paddle.Tensor.deg2rad
python/paddle/tensor/math.py
@enkilee #58718
@changeyoung98 #60619
p1 0/1
34 paddle.nn.CELU
python/paddle/nn/layer/activation.py
@DrRyanHuang #58445
p1 4/5
35 paddle.nn.ChannelShuffle
python/paddle/nn/layer/vision.py
@fsczz #59718 #60192 #60445
p1
36 paddle.amp.debugging.check_numerics
python/paddle/amp/debugging.py
@Liyulingyue #58879
p1
37 paddle.Tensor.cholesky
python/paddle/tensor/linalg.py
@enkilee #58341
p1 不全(5/6)
38 paddle.Tensor.cholesky_solve
python/paddle/tensor/linalg.py
@enkilee #58341
p1 不全(6/7)
39 paddle.nn.functional.class_center_sample
python/paddle/nn/functional/common.py
@DrRyanHuang #58693
p1
40 paddle.nn.ClipGradByNorm
python/paddle/nn/clip.py
@fsczz #59718 #60192 #60445
p1
41 paddle.complex
python/paddle/tensor/creation.py
@enkilee #58491
p1 5/5
42 paddle.Tensor.diff
python/paddle/tensor/math.py
@DrRyanHuang #58676
p1
43 paddle.Tensor.conj
python/paddle/tensor/math.py
@DrRyanHuang #58676
p1
44 paddle.Tensor.cosh
python/paddle/tensor/ops.py
@MarioLulab #58608
p0 5/6
45 paddle.crop
python/paddle/tensor/manipulation.py
@longranger2 #58682
p1 7/10
46 paddle.Tensor.cross
python/paddle/tensor/linalg.py
@longranger2 #58682
p1 5/5
47 paddle.nn.functional.softmax_with_cross_entropy
python/paddle/nn/functional/loss.py
@longranger2 #58682
p1 43/44
48 paddle.cummax
python/paddle/tensor/math.py
@DrRyanHuang #58629
p1 11/11
49 paddle.cummin
python/paddle/tensor/math.py
@DrRyanHuang #58629
p1 11/11
50 paddle.Tensor.cumprod
python/paddle/tensor/math.py
@longranger2 #58466 #58541
p0 7/7
51 paddle.vision.ops.decode_jpeg
python/paddle/vision/ops.py
@longranger2 #58684
@enkilee #58955
p1 1/1
52 paddle.vision.ops.deform_conv2d
python/paddle/vision/ops.py
@longranger2 #58684
@MarioLulab #60168
p1 23/23
53 paddle.linalg.det
python/paddle/tensor/linalg.py
@longranger2
@zrr1999 #58384
p1 6/6
54 paddle.diagflat
python/paddle/tensor/creation.py
@longranger2 #58627
p1 1/2
55 paddle.nn.functional.diag_embed
python/paddle/nn/functional/extension.py
@longranger2 #58627
p1 3/3
56 paddle.Tensor.diagonal
python/paddle/tensor/math.py
@longranger2 #58627
p1 9/9
57 paddle.Tensor.digamma
python/paddle/tensor/math.py
@longranger2 #58466 #58541
p0 5/5
58 paddle.distribution.Dirichlet
python/paddle/distribution/dirichlet.py
@longranger2 #59230
p1
59 paddle.Tensor.dist
python/paddle/tensor/linalg.py
@longranger2 #58697
p1
60 paddle.vision.ops.distribute_fpn_proposals
python/paddle/vision/ops.py
@longranger2 #58684
p1 13/16
61 paddle.linalg.eigh
python/paddle/tensor/linalg.py
@longranger2 #58697
p1 5/6
62 paddle.Tensor.eigvals
python/paddle/tensor/linalg.py
@longranger2 #59230
p1
63 paddle.Tensor.eigvalsh
python/paddle/tensor/linalg.py
@longranger2 #58697
p1 4/6
64 paddle.nn.ELU
python/paddle/nn/layer/activation.py
@longranger2 #59230
p1
65 paddle.empty_like
python/paddle/tensor/creation.py
@longranger2 #58698
p1 3/3
66 paddle.Tensor.equal_all
python/paddle/tensor/logic.py
@longranger2
@zrr1999 #58287
p1 全(4/4)
67 paddle.Tensor.erfinv
python/paddle/tensor/math.py
@longranger2 #58466 #58541
p0
68 paddle.Tensor.expand_as
python/paddle/tensor/manipulation.py
@zrr1999 #58287
@longranger2
p1 全(5/5)
69 paddle.eye
python/paddle/tensor/creation.py
@longranger2 #58698
p1 5/7
70 paddle.nn.functional.scaled_dot_product_attention
python/paddle/nn/functional/flash_attention.py
@longranger2 #59230
p1
71 paddle.Tensor.fill_diagonal_tensor
python/paddle/tensor/manipulation.py
@longranger2
@enkilee #59091
p1 5/5
72 paddle.Tensor.floor_divide
python/paddle/tensor/math.py
@longranger2
@enkilee #58718
p1 6/7
73 paddle.Tensor.fmax
python/paddle/tensor/math.py
@xiaoyewww #58596
p1 5/5
74 paddle.Tensor.fmin
python/paddle/tensor/math.py
@xiaoyewww #58596
p1 5/5
75 paddle.nn.Fold
python/paddle/nn/layer/common.py
@longranger2 #59627
p1 5/6
76 paddle.nn.functional.sigmoid_focal_loss
python/paddle/nn/functional/loss.py
@longranger2 #59627
p1 1/2
77 paddle.nn.initializer.Dirac
python/paddle/nn/initializer/dirac.py
@longranger2 #59627
@MarioLulab #59911
p1 3/3
78 paddle.incubate.nn.FusedMultiHeadAttention
python/paddle/incubate/nn/layer/fused_transformer.py
@MarioLulab #58453
p1 1/2
79 paddle.incubate.nn.FusedBiasDropoutResidualLayerNorm
python/paddle/incubate/nn/functional/fused_transformer.py
@MarioLulab #58453
p1 未适配
80 paddle.incubate.nn.functional.fused_layer_norm
python/paddle/incubate/nn/functional/fused_layer_norm.py
@MarioLulab #59420
p1 5/5
81 paddle.incubate.nn.layer.fused_dropout_add.FusedDropoutAdd
python/paddle/incubate/nn/layer/fused_dropout_add.py
@MarioLulab #59420
p1 1/1
82 paddle.incubate.nn.FusedFeedForward
python/paddle/incubate/nn/layer/fused_transformer.py
@MarioLulab #58453
p1 2/5
83 paddle.incubate.nn.FusedLinear
python/paddle/incubate/nn/layer/fused_linear.py
@longranger2
@enkilee #58911
p1
84 paddle.incubate.nn.functional.fused_linear_activation
python/paddle/incubate/nn/functional/fused_matmul_bias.py
@longranger2
@enkilee #58911
p1
85 paddle.incubate.nn.functional.fused_matmul_bias
python/paddle/incubate/nn/functional/fused_matmul_bias.py
@longranger2
@enkilee #58911
p1
86 paddle.incubate.nn.FusedMultiTransformer
python/paddle/incubate/nn/functional/fused_transformer.py
@longranger2
@enkilee #58911
p1
87 paddle.incubate.nn.functional.fused_rotary_position_embedding
python/paddle/incubate/nn/functional/fused_rotary_position_embedding.py
@longranger2
@enkilee #58911
p1 1/1
88 paddle.incubate.softmax_mask_fuse
python/paddle/incubate/operators/softmax_mask_fuse.py
@longranger2
p1
89 paddle.nn.functional.gather_tree
python/paddle/nn/functional/extension.py
@longranger2
@enkilee #58792
p1 4/4
90 paddle.vision.ops.generate_proposals
python/paddle/vision/ops.py
@longranger2 #59801
p1
91 paddle.incubate.graph_khop_sampler
python/paddle/incubate/operators/graph_khop_sampler.py
@longranger2 #59801
p1
92 paddle.incubate.graph_reindex
python/paddle/incubate/operators/graph_reindex.py
@longranger2 #59801
p1
93 paddle.incubate.graph_sample_neighbors
python/paddle/incubate/operators/graph_sample_neighbors.py
@longranger2 #59861
p1
94 paddle.geometric.sample_neighbors
python/paddle/geometric/sampling/neighbors.py
@longranger2 #59861
p1
95 paddle.nn.functional.grid_sample
python/paddle/nn/functional/vision.py
@longranger2 #59861
p1 18/18
96 paddle.nn.GroupNorm
python/paddle/nn/layer/norm.py
@MarioLulab #58608
p0 19/20
97 paddle.nn.Hardshrink
python/paddle/nn/layer/activation.py
@BeingGod #58593
p1 3/5
98 paddle.nn.Hardsigmoid
python/paddle/nn/layer/activation.py
@BeingGod #58593
p1 6/8
99 paddle.nn.Hardswish
python/paddle/nn/layer/activation.py
@BeingGod #58593
p0 6/8
100 paddle.nn.Hardtanh
python/paddle/nn/layer/activation.py
@BeingGod #58593
p1 3/4
101 paddle.Tensor.heaviside
python/paddle/tensor/math.py
@enkilee #58718
p1 7/7
102 paddle.Tensor.histogram
python/paddle/tensor/linalg.py
@DrRyanHuang #58833
p1 6/8
103 paddle.nn.HSigmoidLoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58708
p1
104 paddle.nn.SmoothL1Loss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58708
p1
105 paddle.Tensor.i0
python/paddle/tensor/math.py
@PommesPeter #58603
p1
106 paddle.Tensor.i0e
python/paddle/tensor/math.py
@PommesPeter #58604
p1 8/8
107 paddle.Tensor.i1
python/paddle/tensor/math.py
@DrRyanHuang #58670
p1
108 paddle.Tensor.i1e
python/paddle/tensor/math.py
@DrRyanHuang #58670
p1
109 paddle.incubate.identity_loss
python/paddle/incubate/nn/loss.py
@Liyulingyue #58880
p1 3/3
110 paddle.Tensor.imag
python/paddle/tensor/attribute.py
@zrr1999 #58287
p1 不全(1/2)
111 paddle.index_add
python/paddle/tensor/manipulation.py
@zrr1999 #58384
p1 5/5
112 paddle.index_put
python/paddle/tensor/manipulation.py
@zrr1999 #58384
p1 34/34
113 paddle.index_sample
python/paddle/tensor/search.py
@zrr1999 #59040
p1 5/5
114 paddle.Tensor.index_select
python/paddle/tensor/search.py
@zrr1999 #59040
p0 5/5
115 1. paddle.nn.InstanceNorm1D
2. paddle.nn.InstanceNorm2D
3. paddle.nn.InstanceNorm3D
python/paddle/nn/layer/norm.py
@MarioLulab #59371
p0 10/15
116 paddle.linalg.inverse
python/paddle/tensor/math.py
@zrr1999 #58384
p1 7/7
117 paddle.Tensor.is_empty
python/paddle/tensor/logic.py
@DrRyanHuang #58696
p1 3/4
118 paddle.Tensor.isfinite
python/paddle/tensor/math.py
@DrRyanHuang #58696
p1 6/7
119 paddle.Tensor.isinf
python/paddle/tensor/math.py
@DrRyanHuang #58696
p1 6/7
120 paddle.nn.KLDivLoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58708
p1
121 paddle.Tensor.kron
python/paddle/tensor/math.py
@enkilee #58718
p1 7/7
122 paddle.Tensor.kthvalue
python/paddle/tensor/search.py
@enkilee #58793
p1 7/7
123 paddle.nn.functional.label_smooth
python/paddle/nn/functional/common.py
@DrRyanHuang #58693
p1
124 paddle.optimizer.Lamb
python/paddle/optimizer/lamb.py
@Liyulingyue #58881
p1 混合精度单测未适配
125 paddle.Tensor.lerp
python/paddle/tensor/math.py
@enkilee #58718
p1 13/13
126 paddle.Tensor.lgamma
python/paddle/tensor/math.py
@MarioLulab #58840
p0 4/4
127 paddle.nn.quant.llm_int8_linear
python/paddle/nn/quant/quantized_linear.py
@Liyulingyue #58882
p1
128 paddle.nn.functional.log_loss
python/paddle/nn/functional/loss.py
@Liyulingyue #58888
p1 3/3
129 paddle.nn.LogSoftmax
python/paddle/nn/layer/activation.py
@DrRyanHuang #58445
p1 18/19
130 paddle.Tensor.log1p
python/paddle/tensor/math.py
@MarioLulab #58840
p0 7/7
131 paddle.Tensor.log2
python/paddle/tensor/math.py
@xiaoyewww #58634
p1 6/6
132 paddle.Tensor.logcumsumexp
python/paddle/tensor/math.py
@xiaoyewww #58695
p1 4/5
133 paddle.Tensor.logical_not
python/paddle/tensor/logic.py
@ccsuzzh #58781
p1 2/2
134 paddle.Tensor.logical_or
python/paddle/tensor/logic.py
@ccsuzzh #58781
p1 2/2
135 paddle.Tensor.logical_xor
python/paddle/tensor/logic.py
@ccsuzzh #58781
p1 2/2
136 paddle.Tensor.logit
python/paddle/tensor/math.py
@zrr1999 #58287
p0 全(8/8)
137 paddle.nn.LogSigmoid
python/paddle/nn/layer/activation.py
@DrRyanHuang #58445
p1 4/7
138 paddle.logspace
python/paddle/tensor/creation.py
@enkilee #58491
p1 8/12
139 paddle.Tensor.logsumexp
python/paddle/tensor/math.py
@MarioLulab #58843
p0 11/12
140 paddle.linalg.lstsq
python/paddle/tensor/linalg.py
@DrRyanHuang #58815
p1
141 paddle.linalg.lu
python/paddle/tensor/linalg.py
@DrRyanHuang #58815
p1
142 paddle.linalg.lu_unpack
python/paddle/tensor/linalg.py
@DrRyanHuang #58815
p1 缺check grad
143 paddle.nn.functional.margin_cross_entropy
python/paddle/nn/functional/loss.py
@Tomoko-hjf #58762
p1 6/6
144 paddle.incubate.nn.functional.masked_multihead_attention
python/paddle/incubate/nn/functional/masked_multihead_attention.py
@Tomoko-hjf #58762
p1 2/2
145 paddle.Tensor.masked_select
python/paddle/tensor/search.py
@cocoshe #58929
p1 14/16
146 paddle.Tensor.inner
python/paddle/tensor/math.py
@cocoshe #58931
p1 1/2
147 paddle.Tensor.mm
python/paddle/tensor/math.py
@cocoshe #58935
p1 1/4
148 paddle.Tensor.outer
python/paddle/tensor/math.py
@cocoshe #58927
p1 1/2
149 paddle.vision.ops.matrix_nms
python/paddle/vision/ops.py
@cocoshe #58937
p1 3/4
150 paddle.linalg.matrix_power
python/paddle/tensor/linalg.py
@DrRyanHuang #58740
p1 28/29
151 paddle.linalg.matrix_rank
python/paddle/tensor/linalg.py
@DrRyanHuang #58740
p1
152 paddle.nn.Maxout
python/paddle/nn/layer/activation.py
@DrRyanHuang #58429
p1 3/4
153 paddle.meshgrid
python/paddle/tensor/creation.py
@enkilee #58491
p0 7/12
154 paddle.Tensor.mode
python/paddle/tensor/search.py
@ccsuzzh #58883
p1 7/10
155 paddle.linalg.multi_dot
python/paddle/tensor/linalg.py
@DrRyanHuang #58740
p1 16/17
156 paddle.Tensor.multiplex
python/paddle/tensor/math.py
@zrr1999 #59041
p1 5/5
157 paddle.Tensor.mv
python/paddle/tensor/linalg.py
@DrRyanHuang #58740
p1
158 paddle.Tensor.nanmedian
python/paddle/tensor/stat.py
@ccsuzzh
@Liyulingyue #58889
p1
159 paddle.Tensor.nextafter
python/paddle/tensor/math.py
@zrr1999 #59041
p1 2/2
160 paddle.nn.NLLLoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58832
@ooooo-create
p1 6/7
161 paddle.vision.ops.nms
python/paddle/vision/ops.py
@ooooo-create #58735
p1 2/2
162 paddle.nn.functional.one_hot
python/paddle/nn/functional/input.py
@ooooo-create #58735
p1 3/13
163 paddle.nn.functional.normalize
python/paddle/nn/functional/norm.py
@ooooo-create
@MarioLulab
p1
164 1. paddle.nn.Pad1D
2. paddle.nn.Pad2D
3. paddle.nn.Pad3D
4. paddle.nn.ZeroPad2D
python/paddle/nn/layer/common.py
@ooooo-create
p1
165 paddle.nn.PixelShuffle
python/paddle/nn/layer/vision.py
@ooooo-create
@MarioLulab
p1
166 paddle.Tensor.polygamma
python/paddle/tensor/math.py
@PommesPeter #58605
p1 8/8
167 1. paddle.nn.AdaptiveAvgPool1D
2. paddle.nn.AvgPool1D

python/paddle/nn/layer/pooling.py
@DrRyanHuang #58700
p1
168 1. paddle.nn.AdaptiveAvgPool3D
2. paddle.nn.AvgPool3D
python/paddle/nn/layer/pooling.py
@DrRyanHuang #58700
p1
169 paddle.nn.PReLU
python/paddle/nn/layer/activation.py
@DrRyanHuang #58445
p1 38/42
170 paddle.vision.ops.prior_box
python/paddle/vision/ops.py
@ccsuzzh #59042
p1 4/4
171 paddle.vision.ops.PSRoIPool
python/paddle/vision/ops.py
@ooooo-create #60353
p1
172 paddle.Tensor.put_along_axis
python/paddle/tensor/manipulation.py
@xiaoyewww #58831
p0 4/4
173 paddle.linalg.qr
python/paddle/tensor/linalg.py
@DrRyanHuang #58740
p1
174 paddle.randint_like
python/paddle/tensor/random.py
@enkilee #58953
p1 1/1
175 paddle.vision.ops.read_file
python/paddle/vision/ops.py
@enkilee #58955
p1 1/1
176 paddle.Tensor.reciprocal
python/paddle/tensor/ops.py
@ccsuzzh #59042
p1 4/4
177 paddle.geometric.reindex_graph
python/paddle/geometric/reindex.py
@ooooo-create #60323
p1 1/1
178 paddle.nn.ReLU6
python/paddle/nn/layer/activation.py
@DrRyanHuang #58445
p1 4/6
179 paddle.Tensor.floor_mod
python/paddle/tensor/math.py
@zrr1999
p1
180 paddle.renorm
python/paddle/tensor/math.py
@zrr1999 #59041
p1 1/1
181 paddle.Tensor.repeat_interleave
python/paddle/tensor/manipulation.py
@zrr1999 #59500
p1 5/5
182 paddle.optimizer.RMSProp
python/paddle/optimizer/rmsprop.py
@ooooo-create #60350
p1
183 1. paddle.nn.GRU
2. paddle.nn.LSTM
3. paddle.nn.SimpleRNN
python/paddle/nn/layer/rnn.py
@ooooo-create #60071
@changeyoung98 #60180
p1
184 paddle.vision.ops.RoIAlign
python/paddle/vision/ops.py
@DrRyanHuang #58685
p1
185 paddle.vision.ops.RoIPool
python/paddle/vision/ops.py
@DrRyanHuang #58685
p1
186 paddle.Tensor.roll
python/paddle/tensor/manipulation.py
@xiaoyewww
@enkilee #59091
p0 10/10
187 paddle.nn.RReLU
python/paddle/nn/layer/activation.py
@DrRyanHuang #58429
@xiaoyewww #59313
p1 11/14
188 paddle.regularizer.L2Decay
python/paddle/regularizer.py
@xiaoyewww #59313
@MarioLulab #60292
p1
189 paddle.Tensor.rad2deg
python/paddle/tensor/math.py
@zrr1999 #59041
p1 1/1
190 paddle.Tensor.scatter
python/paddle/tensor/manipulation.py
@enkilee #58548
p0 26/27
191 paddle.Tensor.scatter_nd_add
python/paddle/tensor/manipulation.py
@enkilee #58548
p0 11/11
192 paddle.searchsorted
python/paddle/tensor/search.py
@Olive-2019 #59387
@MarioLulab #60014
p1 8/9
193 paddle.geometric.segment_max
python/paddle/geometric/math.py
@enkilee #58579
p1 5/6
194 paddle.geometric.segment_mean
python/paddle/geometric/math.py
@enkilee #58579
p1 5/6
195 paddle.geometric.segment_min
python/paddle/geometric/math.py
@enkilee #58579
p1 5/6
196 paddle.geometric.segment_sum
python/paddle/geometric/math.py
@enkilee #58579
p1 5/6
197 paddle.nn.SELU
python/paddle/nn/layer/activation.py
@DrRyanHuang #58429
p1 3/4
198 paddle.incubate.graph_send_recv
python/paddle/incubate/operators/graph_send_recv.py
@enkilee #58582
p1
199 paddle.geometric.send_u_recv
python/paddle/geometric/message_passing/send_recv.py
@enkilee #58582
p1
200 paddle.geometric.send_ue_recv
python/paddle/geometric/message_passing/send_recv.py
@enkilee #58582
p1
201 paddle.geometric.send_uv
python/paddle/geometric/message_passing/send_recv.py
@enkilee #58582
p1
202 paddle.nn.functional.sequence_mask
python/paddle/nn/functional/extension.py
@YuanRisheng #60345
p1
203 paddle.Tensor.shard_index
python/paddle/tensor/manipulation.py
@enkilee #59091
p1 0/4
204 paddle.nn.BCEWithLogitsLoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58832
p1 4/4
205 paddle.regularizer.L1Decay
python/paddle/regularizer.py
@YuanRisheng #60345
p1
206 paddle.Tensor.sign
python/paddle/tensor/math.py
@enkilee #58377
p0 3/6
207 paddle.Tensor.sinh
python/paddle/tensor/ops.py
@enkilee #58377
p0 全(6/6)
208 paddle.linalg.slogdet
python/paddle/tensor/linalg.py
@zrr1999 #58384
p1 6/6
209 paddle.nn.Softplus
python/paddle/nn/layer/activation.py
@BeingGod #58593
p1 6/8
210 paddle.nn.Softshrink
python/paddle/nn/layer/activation.py
@BeingGod #58593
p1 3/5
211 paddle.nn.Softsign
python/paddle/nn/layer/activation.py
@BeingGod #58593
p1 3/5
212 paddle.Tensor.vsplit
python/paddle/tensor/manipulation.py
@DrRyanHuang #58683
p1
213 paddle.nn.CosineSimilarity
python/paddle/nn/layer/common.py
@DrRyanHuang #58699
p1
214 paddle.Tensor.stanh
python/paddle/tensor/math.py
@DrRyanHuang #58699
p1 全(除去error)
215 paddle.Tensor.strided_slice
python/paddle/tensor/manipulation.py
@enkilee #59091
p1 31/31
216 addle.nn.MarginRankingLoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58832
p1 7/13
217 paddle.nn.functional.square_error_cost
python/paddle/nn/functional/loss.py
@MarioLulab #59913
p1 1/2
218 paddle.nn.PairwiseDistance
python/paddle/nn/layer/distance.py
@DrRyanHuang #58689
p1
219 paddle.linalg.pinv
python/paddle/tensor/linalg.py
@DrRyanHuang #58446
p1 差两个
220 paddle.linalg.svd
python/paddle/tensor/linalg.py
@DrRyanHuang #58446
p1
221 paddle.nn.Swish
python/paddle/nn/layer/activation.py
@DrRyanHuang #58394
p1 3/4
222 paddle.nn.SyncBatchNorm
python/paddle/nn/layer/norm.py
@xiaoyewww #59077
p1 3/4
223 paddle.Tensor.take_along_axis
python/paddle/tensor/manipulation.py
@DrRyanHuang #58689
@xiaoyewww
p1
224 paddle.tan
python/paddle/tensor/ops.py
@xiaoyewww #58737
p0 4/4
225 paddle.nn.Tanhshrink
python/paddle/nn/layer/activation.py
@DrRyanHuang #58429
p1 3/4
226 paddle.nn.functional.temporal_shift
python/paddle/nn/functional/extension.py
@enkilee #58792
p1 7/7
227 paddle.nn.ThresholdedReLU
python/paddle/nn/layer/activation.py
@DrRyanHuang #58429
p1 3/4
228 paddle.Tensor.moveaxis
python/paddle/tensor/manipulation.py
@DrRyanHuang #58688
p1
229 paddle.t
python/paddle/tensor/linalg.py
@zrr1999 #58384
p1
230 paddle.linalg.triangular_solve
python/paddle/tensor/linalg.py
@zrr1999 #58384
p1
231 paddle.tril_indices
python/paddle/tensor/creation.py
@enkilee #58370
p1
232 paddle.triu_indices
python/paddle/tensor/creation.py
@enkilee #58370
p1
233 paddle.Tensor.trunc
python/paddle/tensor/math.py
@DrRyanHuang #58675
p1 全(除去error)
234 paddle.Tensor.frac
python/paddle/tensor/math.py
@DrRyanHuang #58675
p1
235 paddle.Tensor.unbind
python/paddle/tensor/manipulation.py
@DrRyanHuang #58678
p1
236 paddle.nn.Unfold
python/paddle/nn/layer/common.py
@DrRyanHuang #58678
p1 5/6
237 paddle.nn.initializer.Uniform
python/paddle/nn/initializer/uniform.py
@MarioLulab #58642
p1 2/2
238 paddle.nn.initializer.KaimingNormal
python/paddle/nn/initializer/kaiming.py
@YinKeYu
@MarioLulab #59419
p1 1/1
239 paddle.nn.initializer.KaimingUniform
python/paddle/nn/initializer/kaiming.py
@MarioLulab #59419
p1 1/1
240 paddle.nn.initializer.XavierNormal
python/paddle/nn/initializer/xavier.py
@MarioLulab #59419
p1 1/1
241 paddle.nn.initializer.XavierUniform
python/paddle/nn/initializer/xavier.py
@MarioLulab #59419
p1 1/1
242 paddle.Tensor.unique_consecutive
python/paddle/tensor/manipulation.py
@DrRyanHuang #58688
p1 8/11
243 1. paddle.nn.MaxUnPool1D
2. paddle.nn.MaxUnPool2D
python/paddle/nn/layer/pooling.py
@DrRyanHuang #58700
p1
244 paddle.nn.MaxUnPool3D
python/paddle/nn/layer/pooling.py
@DrRyanHuang #58700
p1
245 paddle.Tensor.unstack
python/paddle/tensor/manipulation.py
@DrRyanHuang #58683
p1
246 paddle.incubate.nn.functional.variable_length_memory_efficient_attention
python/paddle/incubate/nn/functional/variable_length_memory_efficient_attention.py
@Liyulingyue #58786
p1 1/1
247 paddle.text.ViterbiDecoder
python/paddle/text/viterbi_decode.py
@Liyulingyue #58785
p1 2/2
248 paddle.nn.CTCLoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58661
p1 5/7
249 paddle.nn.RNNTLoss
python/paddle/nn/layer/loss.py
@DrRyanHuang #58661
p1 4/5
250 paddle.geometric.weighted_sample_neighbors
python/paddle/geometric/sampling/neighbors.py
@Liyulingyue #58783
p1 1/2
251 paddle.vision.ops.yolo_box
python/paddle/vision/ops.py
@Liyulingyue #58782
p1
252 paddle.vision.ops.yolo_loss
python/paddle/vision/ops.py
@Liyulingyue #58782
p1
253 paddle.cumulative_trapezoid
python/paddle/tensor/math.py
@enkilee #59481
p1 9/9
254 paddle.optimizer.lr.CyclicLR
python/paddle/optimizer/lr.py
@YuanRisheng #60345
p1
255 paddle.incubate.nn.FusedTransformerEncoderLayer
python/paddle/incubate/nn/layer/fused_transformer.py
@MarioLulab
p1
256 paddle.nn.GaussianNLLLoss
python/paddle/nn/layer/loss.py
@MarioLulab #59913
p1 0/2
257 paddle.Tensor.gcd
python/paddle/tensor/math.py
@Olive-2019 #59452
@enkilee #59600
p1 5/5
258 paddle.nn.functional.glu
python/paddle/nn/functional/activation.py
@DrRyanHuang #59535
p1
259 paddle.nn.HingeEmbeddingLoss
python/paddle/nn/layer/loss.py
@zade23
@MarioLulab #60291
p1 2/2
260 paddle.audio.functional.hz_to_mel
python/paddle/audio/functional/functional.py
@MarioLulab #60172
p1 1/1
261 paddle.is_tensor
python/paddle/tensor/logic.py
@DrRyanHuang #59509
p1
262 paddle.distribution.Laplace
python/paddle/distribution/laplace.py
@YuanRisheng #60345
p1
263 paddle.optimizer.LBFGS
python/paddle/optimizer/lbfgs.py
@YuanRisheng #60416
p1
264 paddle.incubate.optimizer.LBFGS
python/paddle/incubate/optimizer/lbfgs.py
@YuanRisheng #60416
p1
265 paddle.Tensor.lcm
python/paddle/tensor/math.py
@enkilee #59600
p1 5/5
266 paddle.Tensor.ldexp
python/paddle/tensor/math.py
@enkilee #59582
p1 1/1
267 paddle.optimizer.lr.LinearWarmup
python/paddle/optimizer/lr.py
@YuanRisheng #60416
p1
268 paddle.nn.LocalResponseNorm
python/paddle/nn/layer/norm.py
@YuanRisheng #60416
p1
269 paddle.Tensor.logaddexp
python/paddle/tensor/math.py
@enkilee #59582
p1 0/0
270 paddle.audio.features.LogMelSpectrogram
python/paddle/audio/features/layers.py
@0x45f #60313
p1
271 paddle.distribution.LogNormal
python/paddle/distribution/lognormal.py
@0x45f #60318
p1
272 paddle.incubate.LookAhead
python/paddle/incubate/optimizer/lookahead.py
@0x45f #60346
p1
273 paddle.Tensor.median
python/paddle/tensor/stat.py
@DrRyanHuang #59509
p1
274 paddle.audio.functional.mel_frequencies
python/paddle/audio/functional/functional.py
@MarioLulab #60172
p1 0/1
275 paddle.audio.functional.mel_to_hz
python/paddle/audio/functional/functional.py
@MarioLulab #60172
p1 1/1
276 paddle.audio.features.MelSpectrogram
python/paddle/audio/features/layers.py
@MarioLulab #60172
p1 0/0
277 paddle.audio.features.MFCC
python/paddle/audio/features/layers.py
@MarioLulab #60172
p1 0/0
278 paddle.nn.Mish
python/paddle/nn/layer/activation.py
@MarioLulab #60172
p1 3/4
279 paddle.nn.MultiLabelSoftMarginLoss
python/paddle/nn/layer/loss.py
@MarioLulab #59913
p1 1/1
280 paddle.nn.MultiMarginLoss
python/paddle/nn/layer/loss.py
@MarioLulab #59913
p1 1/1
281 paddle.nn.MultiHeadAttention
python/paddle/nn/layer/transformer.py
@MarioLulab
p1
282 paddle.Tensor.nan_to_num
python/paddle/tensor/math.py
@DrRyanHuang
@xiaoyewww #59469
p1 1/1
283 paddle.Tensor.nanmean
python/paddle/tensor/math.py
@DrRyanHuang #59509
@xiaoyewww
p1
284 paddle.Tensor.nanquantile
python/paddle/tensor/stat.py
@xiaoyewww #59572
p1 1/2
285 paddle.Tensor.nansum
python/paddle/tensor/math.py
@DrRyanHuang #59509
@xiaoyewww
p1
286 paddle.neg
python/paddle/tensor/math.py
@DrRyanHuang #59509
@xiaoyewww
p1
287 paddle.nn.functional.npair_loss
python/paddle/nn/functional/loss.py
@0x45f #60199
p1
288 paddle.nn.initializer.Orthogonal
python/paddle/nn/initializer/orthogonal.py
@MarioLulab #59911
p1 6/6
289 paddle.linalg.pca_lowrank
python/paddle/tensor/linalg.py
@0x45f #60320
p1
290 paddle.nn.PoissonNLLLoss
python/paddle/nn/layer/loss.py
@zade23
@MarioLulab #60291
p1 8/8
291 paddle.Tensor.polar
python/paddle/tensor/creation.py
@0x45f #60198
p1
292 paddle.audio.functional.power_to_db
python/paddle/audio/functional/functional.py
@0x45f
@MarioLulab #60172
p1 1/1
293 paddle.Tensor.quantile
python/paddle/tensor/stat.py
@xiaoyewww #59572
p1 1/2
294 paddle.vision.transforms.RandomAffine
python/paddle/vision/transforms/transforms.py
@0x45f #60333
p1
295 paddle.rank
python/paddle/tensor/attribute.py
@DrRyanHuang #59535
p1
296 paddle.geometric.reindex_heter_graph
python/paddle/geometric/reindex.py
@0x45f #60197
p1
297 paddle.distribution.ReshapeTransform
python/paddle/distribution/transform.py
@0x45f #60341
p1
298 paddle.Tensor.rot90
python/paddle/tensor/manipulation.py
@changeyoung98 #60193
p1 1/1
299 paddle.Tensor.sgn
python/paddle/tensor/math.py
@DrRyanHuang #59535
p1
300 paddle.distribution.SigmoidTransform
python/paddle/distribution/transform.py
@changeyoung98 #60325
p1
301 paddle.nn.SoftMarginLoss
python/paddle/nn/layer/loss.py
@zade23
@MarioLulab #60291
p1 1/1
302 paddle.nn.Softmax2D
python/paddle/nn/layer/activation.py
@changeyoung98 #60247
p1 6/6
303 paddle.nn.SpectralNorm
python/paddle/nn/layer/norm.py
@changeyoung98 #60250
p1 6/6
304 paddle.audio.features.Spectrogram
python/paddle/audio/features/layers.py
@changeyoung98 #60424
p1
305 paddle.distribution.StackTransform
python/paddle/distribution/transform.py
@changeyoung98 #60325
p1
306 paddle.distribution.StickBreakingTransform
python/paddle/distribution/transform.py
@changeyoung98 #60325
p1
307 paddle.Tensor.take
python/paddle/tensor/math.py
@DrRyanHuang #59535
p1
308 paddle.Tensor.tensordot
python/paddle/tensor/manipulation.py
@Olive-2019 #59459
@MarioLulab #60014
p1 9/10
309 paddle.nn.Transformer
python/paddle/nn/layer/transformer.py
@changeyoung98 #60425
p1
310 paddle.Tensor.trapezoid
python/paddle/tensor/math.py
@enkilee #59481
p1 13/13
311 paddle.nn.TripletMarginLoss
python/paddle/nn/layer/loss.py
@zade23
@MarioLulab #60291
p1 3/3
312 paddle.nn.TripletMarginWithDistanceLoss
python/paddle/nn/layer/loss.py
@zade23
@MarioLulab #60291
p1 4/4
313 paddle.nn.Unflatten
python/paddle/nn/layer/common.py
@DrRyanHuang #59509
p1
314 paddle.Tensor.vander
python/paddle/tensor/math.py
@DrRyanHuang #59573
p1
315 paddle.var
python/paddle/tensor/stat.py
@DrRyanHuang #59509
p1

三、Tutorial 💼

对Python API进行适配升级,实现在 PIR 模式下,在 Python 端调用底层 C++ 端 PIR API。

本任务中,需要关注的有三种模式判断:

# python/paddle/fluid/framework.py

in_dygraph_mode() # 动态图模式下为 True

in_pir_mode() # PIR 模式下为 True

in_dynamic_or_pir_mode() # 动态图或者 PIR 模式下为 True

为了提高 Python 端的代码复用,提升代码简洁性降低维护成本,我们对 C++ 端 PIR API 和动态图 API 接口进行了统一。正如上述 mean 所示,_C_ops.mean 可以表示在 PIR 或者动态图下的 C++ 接口,所以为了能够在 PIR 模式下调用 C++ 接口,只需要将 in_dygraph_mode() 改为 in_dynamic_or_pir_mode() 即可,这样就实现了 Python 端支持 PIR API 调用。但是在 API concat当中,由于动态图中存在无法给新IR复用的代码,所以使用 in_pir_mode() 新开了一个分支。

四、单测验证 🔧

需要对 api 相关的单测进行修改以进行验证,单测文件中一般会有两种类型的单测:一种单测继承自 OpTest,另一种单测继承自 TestCase

mean 为例,其单测在文件 test_mean_op.py 中,具有继承自 OpTest 和继承自 TestCase 两种类型的单测:

1. 对于继承自 OpTest 的单测

在单测函数中加入 check_pir = True,即可实现对新 IR 下 api 的验证

2. 对于继承自 TestCase 的单测

首先需要确认一下这个单测是静态图模式下的代码,然后在单测函数上加装饰器 test_with_pir_api

运行单测有两种方式,任意一种跑通即可:

  1. 编译安装好 paddle 直接使用 python 命令执行单测文件
  2. 编译 paddle 后,在 build 目录下,使用命令 ctest -R test_mean_op 来运行

五、注意事项 💡

1. 关于 PR 的验收规范

我们适配的 API 对应的单测原则上是应开尽开,PR 描述里需要写清楚相关单测打开情况 (xx/总数),如果有的单测开了有解决不了的 bug,可以把 bug 截图添加到 PR 描述里记录为 TODO。以 paddle.mean 的在 test/legacy_test/test_mean_op.py中的单测验证为例,说明如何统计单测验证的数量: 我们以继承自 OpTestTestCase 的单测 class 为基本单位,如果下图所示的 TestMeanOpTestMeanOp_ZeroDim 内的所有单测均正常运行,则单测打开数量计为 2

2. 关于问题记录和 BUG 修复

由于当前 PIR 还处于机制完善和验证阶段,且单测验证框架也可能存在问题,所以遇到不容易解决的问题先记录到 PR 的描述当中,有 Paddle 团队来解决。 遇到的 bug 可能会普遍出现在其他 API 适配的场景,因此为了降低开发成本,我们维护了一个 bug 修复手册 组网 API PIR 迁移 bug 修复手册 。建议把 bug 问题描述解决方法组网 API PIR 迁移 bug 修复手册 以 comment 的形式进行记录。

看板信息

任务方向 任务数量 提交作品 / 任务认领 提交率 完成 完成率
PIR Python API 适配升级 315 307 / 315 97.46% 290 92.06%

统计信息

排名不分先后 @DrRyanHuang (75) @MarioLulab (45) @enkilee (48) @GreatV (5) @0x45f (8) @Liyulingyue (12) @ooooo-create (7) @fsczz (2) @longranger2 (21) @zrr1999 (18) @xiaoyewww (11) @BeingGod (7) @PommesPeter (3) @ccsuzzh (6) @Tomoko-hjf (2) @cocoshe (5) @changeyoung98 (7) @YuanRisheng (8)

MarioLulab commented 6 months ago

【报名】:2、3、12、13、16、18、78-82

PommesPeter commented 6 months ago

【报名】:105, 106, 166

GreatV commented 6 months ago

【报名】:4, 5, 6, 7, 8, 9

BeingGod commented 6 months ago

【报名】:97, 98, 99, 100, 209, 210, 211

ccsuzzh commented 6 months ago

【报名】:133,134,135

longranger2 commented 6 months ago

【报名】:50-70

DrRyanHuang commented 6 months ago

【报名】:~219-221~

DrRyanHuang commented 6 months ago

【报名】:~178, 169, 137, 34, 129, 152, 187, 197, 225, 227~

enkilee commented 6 months ago

【报名】:231-232

zrr1999 commented 6 months ago

【报名】:229,230,208

zrr1999 commented 6 months ago

【报名】:111-114

DrRyanHuang commented 6 months ago

【报名】:~117-119~

MarioLulab commented 6 months ago

【报名】:44、96、115、126、130、139、237

DrRyanHuang commented 6 months ago

【报名】:~1、20、103、104、120~、160、204、216、~248、249~

ooooo-create commented 6 months ago

【报名】:160-162

xiaoyewww commented 6 months ago

【报名】:73、74

DrRyanHuang commented 6 months ago

【报名】:~48、49~

GreatV commented 6 months ago

No.8 paddle.Tensor.argmin 已升级完成 @MarioLulab

MarioLulab commented 6 months ago

No.8 paddle.Tensor.argmin 已升级完成 @MarioLulab

多谢提醒,已修改任务状态 😄

longranger2 commented 6 months ago

【报名】45-47、71-72、75-77

xiaoyewww commented 6 months ago

【报名】131、132

DrRyanHuang commented 6 months ago

【报名】23、27、102、~140-142、150、151、155、157、173、233、234~

DrRyanHuang commented 6 months ago

【报名】~107、108、42、43、235、236、212、245、184、185、242、228、218、223、39、123~

longranger2 commented 6 months ago

【报名】83-95

GreatV commented 6 months ago

【报名】22-23

longranger2 commented 6 months ago

62的eigvals已经完成了的

image
xiaoyewww commented 6 months ago

【报名】222-224

DrRyanHuang commented 6 months ago

【报名】~213、214、167、168、243、244~

cocoshe commented 6 months ago

【报名】145-149

MarioLulab commented 6 months ago

eigvals

是的,在 api 上已经切换至 pir mode,但是单测未覆盖完全,比如 TestEigvalsAPI 就还没有覆盖 (https://github.com/PaddlePaddle/Paddle/blob/develop/test/legacy_test/test_eigvals_op.py#L274) ~ 大佬可以顺手做一下

zrr1999 commented 6 months ago

【报名】179-181、156、159、189

DrRyanHuang commented 6 months ago

【报名】29

xiaoyewww commented 6 months ago

【报名】172、186、188

YinKeYu commented 6 months ago

【报名】238

ccsuzzh commented 6 months ago

【报名】154、158、170、176

zrr1999 commented 6 months ago

179 与 remainder重复了 @MarioLulab

MarioLulab commented 6 months ago

floor_mod

确实,floor_mod 和 remainder 是一个东西。我把 179 删掉

fsczz commented 5 months ago

【报名】:35、40

MarioLulab commented 5 months ago

【报名】:238-241

Olive-2019 commented 5 months ago

【报名】:192

DrRyanHuang commented 5 months ago

【报名】~261、273、283、285、286、313、315、258、282、295、299、307~

Olive-2019 commented 5 months ago

【报名】257

enkilee commented 5 months ago

253 265 266 269 307 310 314

Olive-2019 commented 5 months ago

【报名】308

xiaoyewww commented 5 months ago

【报名】282-286

xiaoyewww commented 5 months ago

【报名】293

ooooo-create commented 5 months ago

【报名】:19、28、31-32、163-165、171、177、182-183

MarioLulab commented 5 months ago

【报名】:77、288

MarioLulab commented 5 months ago

【报名】:217、255、256、260、274-281

zade23 commented 5 months ago

【报名】:259、290、301、311-312