Paddle icon indicating copy to clipboard operation
Paddle copied to clipboard

【开源任务】 Paddle API 0-size 机制建设-第2批

Open wanghuancoder opened this issue 5 months ago • 2 comments

一、背景

0-Size Tensor是指,Tensor.shape中存在某维度值为0,进而该Tensor虽有shape、dtype、place等信息,但他的元素个数为0。在切割等特定业务中,0-Size出现频率较高。Paddle目前对0-Size的支持非常薄弱,需要系统性摸排、建设。 参与本项活动,你将学习到Paddle算子库框架的设计,并了解Paddle动态图的整体执行流程。对深度学习框架0-Size业务有深刻了解。也有可能会涉猎到Paddle组合算子机制和编译器符号推导机制。遇到问题我们将有专人解答。

二、任务描述

本次开源任务主要用于完善Paddle的一些API对0-size Tensor的支持,这些不支持0-size Tensor的API遇到0-size Tensor时会出现例如精度异常、Coredump、Cuda Error、报错等问题。这些存在问题的API大概率是由于Kernel没有考虑到0-Size场景而产生的,当然也涉及到API shape的推导。 其他的成因需要具体分析。需要修复的API如下:

[!IMPORTANT]
每个任务难度:0.025×🌟 题目讲解见录屏文件:https://meeting.tencent.com/crm/l59EWmRZc4 (00:16:00~00:36:00) 详细介绍见:

  • https://github.com/PaddlePaddle/Paddle/issues/72637#issuecomment-2879353324
  • 报名格式参考:【报名】:2、3,多个任务之间需要使用中文顿号分隔,报名多个连续任务可用横线表示,如 2-5
  • PR 提交格式:在 PR 的标题中以 【0-size Tensor Job2 No.xxx】 开头,注明任务编号。请注意,标题中一定要加Job2,以和第一批任务区分。
序号 API 报名人/状态 CPU/GPU/testcase
1 paddle.add gpu
2 paddle.add_n gpu,cpu
3 paddle.bincount gpu,cpu
4 paddle.broadcast_tensors gpu
5 paddle.cdist gpu,cpu
6 paddle.crop @co63oc #73333 #73299
gpu,cpu
7 paddle.cumprod @co63oc #73333
gpu
8 paddle.divide gpu
9 paddle.dot gpu,cpu
10 paddle.equal_all gpu
11 paddle.expand_as gpu,cpu
12 paddle.full gpu,cpu
13 paddle.gammainc gpu
14 paddle.gammaincc @co63oc #73207
gpu
15 paddle.gather gpu,cpu
16 paddle.gather_nd gpu,cpu
17 paddle.geometric.segment_max @co63oc #73341
gpu,cpu
18 paddle.geometric.segment_mean @co63oc #73341
gpu,cpu
19 paddle.geometric.segment_min @co63oc #73341
gpu,cpu
20 paddle.geometric.segment_sum @co63oc #73341
gpu,cpu
21 paddle.geometric.send_u_recv gpu,cpu
22 paddle.geometric.send_ue_recv gpu,cpu
23 paddle.geometric.send_uv gpu,cpu
24 paddle.histogram gpu,cpu
25 paddle.increment gpu,cpu
26 paddle.incubate.nn.functional.fused_bias_dropout_residual_layer_norm gpu
27 paddle.incubate.nn.functional.fused_linear gpu
28 paddle.incubate.nn.functional.fused_linear_activation gpu
29 paddle.incubate.nn.functional.fused_multi_head_attention gpu
30 paddle.incubate.nn.functional.swiglu @co63oc #73346
gpu,cpu
31 paddle.incubate.segment_max @co63oc #73341
gpu,cpu
32 paddle.incubate.segment_mean @co63oc #73341
gpu,cpu
33 paddle.incubate.segment_min @co63oc #73341
gpu,cpu
34 paddle.incubate.segment_sum @co63oc #73341
gpu,cpu
35 paddle.incubate.softmax_mask_fuse_upper_triangle @co63oc #73353
gpu,cpu
36 paddle.index_add gpu,cpu
37 paddle.index_put gpu,cpu
38 paddle.index_sample @co63oc #73276
gpu,cpu
39 paddle.index_select @co63oc #73270
gpu,cpu
40 paddle.linalg.cholesky gpu,cpu
41 paddle.linalg.eigh gpu,cpu
42 paddle.linalg.eigvals gpu,cpu
43 paddle.linalg.lu gpu,cpu
44 paddle.linalg.lu_unpack gpu,cpu
45 paddle.linalg.svdvals gpu,cpu
46 paddle.masked_scatter gpu,cpu
47 paddle.max gpu,cpu
48 paddle.median gpu,cpu
49 paddle.min gpu,cpu
50 paddle.mode gpu,cpu
51 paddle.multiplex gpu,cpu
52 paddle.multiply gpu
53 paddle.nn.functional.adaptive_log_softmax_with_loss gpu,cpu
54 paddle.nn.functional.binary_cross_entropy gpu,cpu
55 paddle.nn.functional.cross_entropy gpu,cpu
56 paddle.nn.functional.dice_loss gpu,cpu
57 paddle.nn.functional.embedding gpu,cpu
58 paddle.nn.functional.gather_tree gpu,cpu
59 paddle.nn.functional.gaussian_nll_loss gpu,cpu
60 paddle.nn.functional.instance_norm gpu,cpu
61 paddle.nn.functional.log_loss gpu,cpu
62 paddle.nn.functional.margin_cross_entropy gpu,cpu
63 paddle.nn.functional.nll_loss gpu,cpu
64 paddle.nn.functional.one_hot gpu
65 paddle.nn.functional.smooth_l1_loss @co63oc #73354
gpu
66 paddle.nn.functional.softmax_with_cross_entropy gpu,cpu
67 paddle.nn.functional.upsample gpu,cpu
68 paddle.pow @co63oc #73204
gpu
69 paddle.prod gpu,cpu
70 paddle.put_along_axis gpu,cpu
71 paddle.scale gpu,cpu
72 paddle.scatter gpu,cpu
73 paddle.scatter_nd gpu,cpu
74 paddle.scatter_nd_add gpu,cpu
75 paddle.shard_index gpu,cpu
76 paddle.slice_scatter cpu
77 paddle.squeeze gpu,cpu
78 paddle.sum @co63oc #73355
gpu,cpu
79 paddle.Tensor.add gpu
80 paddle.Tensor.mul gpu
81 paddle.Tensor.truediv gpu
82 paddle.Tensor.add gpu
83 paddle.Tensor.cumprod gpu
84 paddle.Tensor.gather gpu,cpu
85 paddle.Tensor.gather_nd gpu,cpu
86 paddle.Tensor.index_select @co63oc #73270
gpu,cpu
87 paddle.Tensor.masked_fill gpu
88 paddle.Tensor.max gpu,cpu
89 paddle.Tensor.mean gpu,cpu
90 paddle.Tensor.min gpu,cpu
91 paddle.Tensor.multiply gpu
92 paddle.Tensor.pow @co63oc #73204
gpu
93 paddle.Tensor.prod gpu,cpu
94 paddle.Tensor.put_along_axis gpu,cpu
95 paddle.Tensor.real gpu,cpu
96 paddle.Tensor.reshape gpu,cpu
97 paddle.Tensor.set_ gpu,cpu
98 paddle.Tensor.sum @co63oc #73355
gpu,cpu
99 paddle.Tensor.take_along_axis gpu,cpu
100 paddle.topk @co63oc #73352
gpu,cpu
101 paddle.unfold gpu
102 paddle.vander gpu,cpu
103 paddle.vision.ops.deform_conv2d gpu,cpu
104 paddle.vision.ops.distribute_fpn_proposals gpu,cpu
105 paddle.vision.ops.roi_align gpu,cpu
106 paddle.vision.ops.roi_pool gpu,cpu

看板信息

任务方向 任务数量 提交作品 / 任务认领 提交率 完成 完成率
0-size Tensor的支持任务-第2批 106 22 / 22 20.75% 5 4.72%

统计信息

排名不分先后 @co63oc (5)

wanghuancoder avatar Jun 09 '25 02:06 wanghuancoder

【报名】:11、21-23、43、63、89、96、99、101、106

zhengshengning avatar Jun 30 '25 03:06 zhengshengning

【开源任务】 Paddle API 0-size 机制建设-第2批 已全部完成,感谢参与的小伙伴们!

排名不分先后 @co63oc (96) @zhengshengning (10)

欢迎继续参与 https://github.com/orgs/PaddlePaddle/projects/7 !

luotao1 avatar Jul 28 '25 03:07 luotao1