Paddle
Paddle copied to clipboard
【开源任务】 Paddle API 0-size 机制建设-第2批
一、背景
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 |
gpu,cpu |
| 7 | paddle.cumprod | @co63oc |
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 |
gpu |
| 15 | paddle.gather | gpu,cpu | |
| 16 | paddle.gather_nd | gpu,cpu | |
| 17 | paddle.geometric.segment_max | @co63oc |
gpu,cpu |
| 18 | paddle.geometric.segment_mean | @co63oc |
gpu,cpu |
| 19 | paddle.geometric.segment_min | @co63oc |
gpu,cpu |
| 20 | paddle.geometric.segment_sum | @co63oc |
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 |
gpu,cpu |
| 31 | paddle.incubate.segment_max | @co63oc |
gpu,cpu |
| 32 | paddle.incubate.segment_mean | @co63oc |
gpu,cpu |
| 33 | paddle.incubate.segment_min | @co63oc |
gpu,cpu |
| 34 | paddle.incubate.segment_sum | @co63oc |
gpu,cpu |
| 35 | paddle.incubate.softmax_mask_fuse_upper_triangle | @co63oc |
gpu,cpu |
| 36 | paddle.index_add | gpu,cpu | |
| 37 | paddle.index_put | gpu,cpu | |
| 38 | paddle.index_sample | @co63oc |
gpu,cpu |
| 39 | paddle.index_select | @co63oc |
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 |
gpu |
| 66 | paddle.nn.functional.softmax_with_cross_entropy | gpu,cpu | |
| 67 | paddle.nn.functional.upsample | gpu,cpu | |
| 68 | paddle.pow | @co63oc |
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 |
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 |
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 |
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 |
gpu,cpu |
| 99 | paddle.Tensor.take_along_axis | gpu,cpu | |
| 100 | paddle.topk | @co63oc |
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)
【报名】:11、21-23、43、63、89、96、99、101、106
【开源任务】 Paddle API 0-size 机制建设-第2批 已全部完成,感谢参与的小伙伴们!
排名不分先后 @co63oc (96) @zhengshengning (10)
欢迎继续参与 https://github.com/orgs/PaddlePaddle/projects/7 !