问题描述 Please describe your issue
一,背景和任务列表
任务详情和单测验证请参考之前发布的任务: #57097
Sparse Python API 情况:
目前 python 端注册了大约46个左右的 API,集中在 python/paddle/sparse 目录下,绝大部分是动态图 API,14个是动静统一的 API,算子定义都定义在 sparse_ops.yaml 及 sparse_backward.yaml 文件中,通过自动代码生成的方式生成在 paddle/fluid/operators/generated_sparse_op.cc 文件,全部符合 yaml 定义规范,多数算子都注册了 coo、csr 两种 kernel,根据 PIR 算子/Kernel 一对一的特点,PIR 下需要区分定义 coo、csr,这点与 SelectedRows 特点相近。
| 序号 | Python API | 动态图 | 静态图 | Kernel | 是否做到动静一致 |
| ------------ | ------------ | ------------ | ------------ | ------------ | ------------ |
| 1 | sin | 是 | 否@MrJs133
@risemeup1
| sin_coo、sin_csr | 是 |
| 2 | tan | 是 | 否@MrJs133
| tan_coo、tan_csr | 是 |
| 3 | asin | 是 | 否@MrJs133
@risemeup1
| asin_coo、asin_csr | 是 |
| 4 | transpose | 是 | 否 | transpose_coo、transpose_csr | 是 |
| 5 | sum | 是 | 是 | sum_coo、sum_csr | 是 |
| 6 | atan | 是 | 否 | atan_coo、atan_csr | 是 |
| 7 | sinh | 是 | 否 | sinh_coo、sinh_csr | 是 |
| 8 | asinh | 是 | 否 | asinh_coo、asinh_csr | 是 |
| 9 | atanh | 是 | 否 | atanh_coo、atanh_csr | 是 |
| 10 | tanh | 是 | 否 | tanh_coo、tanh_csr | 是 |
| 11 | square | 是 | 否 | square_coo、square_csr | 是 |
| 12 | sqrt | 是 | 否@MrJs133
@risemeup1
| sqrt_coo、sqrt_csr | 是 |
| 13 | log1p | 是 | 否@MrJs133
@risemeup1
| log1p_coo、log1p_csr | 是 |
| 14 | cast | 是 | 否 | cast_coo、cast_csr | 是 |
| 15 | pow | 是 | 否 | pow_coo、pow_csr | 是 |
| 16 | neg | 是 | 否 | scale_coo、scale_csr | 是 |
| 17 | abs | 是 | 否 | abs_coo、abs_csr | 是 |
| 18 | coalesce | 是 | 否 | coalesce_coo | 是 |
| 19 | rad2deg | 是 | 否 | cast_coo、cast_csr、scale_coo、scale_csr | 是 |
| 20 | deg2rad | 是 | 否 | cast_coo、cast_csr、scale_coo、scale_csr | 是 |
| 21 | expm1 | 是 | 否 | expm1_coo、expm1_csr | 是 |
| 22 | reshape | 是 | 是 | reshape_coo、reshape_csr | 是 |
| 23 | isnan | 是 | 是 | isnan_coo、isnan_csr | 是 |
| 24 | slice | 是 | 是 | slice_coo、slice_csr | 是 |
| 25 | pca_lowrank | 是 | 是 | 通过其他 API 组合 | 是 |
| 26 | addmm | 是 | 否 | addmm_csr_dense、addmm_csr_csr、addmm_coo_dense、addmm_coo_coo | 是 |
| 27 | sparse_coo_tensor | 是 | 是 | sparse_coo_tensor | 是 |
| 28 | sparse_csr_tensor | 是 | 否 | sparse_csr_tensor | 是 |
| 29 | matmul | 是 | 否 | matmul_csr_dense、matmul_csr_csr、matmul_coo_dense、matmul_coo_coo | 是 |
| 30 | masked_matmul | 是 | 否 | masked_matmul_csr | 是 |
| 31 | mv | 是 | 否 | mv_coo、mv_csr | 是 |
| 32 | add | 是 | 是 | add_coo_coo、add_csr_csr、add_coo_dense | 是 |
| 33 | subtract | 是 | 否 | subtract_coo_coo、subtract_csr_csr | 是 |
| 34 | multiply | 是 | 否 | multiply_coo_coo、multiply_csr_csr | 是 |
| 35 | divide | 是 | 否 | divide_coo_coo、divide_csr_csr | 是 |
| 36 | is_same_shape | 是 | 否 | tensor method | 是 |
| 37 | relu | 是 | 是 | relu_coo、relu_csr | 是 |
| 38 | softmax | 是 | 是 | softmax_coo、softmax_csr | 是 |
| 39 | relu6 | 是 | 否 | relu6_coo、relu6_csr | 是 |
| 40 | leaky_relu | 是 | 否 | leaky_relu_coo、leaky_relu_csr | 是 |
| 41 | conv3d | 是 | 是 | conv3d_coo | 是 |
| 42 | subm_conv3d | 是 | 是 | conv3d_coo | 是 |
| 43 | conv2d | 是 | 是 | conv2d_coo | 是 |
| 44 | subm_conv2d | 是 | 是 | conv3d_coo | 是 |
| 45 | max_pool3d | 是 | 是 | maxpool_coo | 是 |
| 46 | attention | 是 | 否 | fused_attention_csr | 是 |单测现状:
- 有一些动静统一的api既有动态图下的单测也有静态图下的单测,如sum,conv等,此类单测已经修复完毕;
- 有一些动静统一的api只有动态图下的单测,没有静态图下的单测,如subm_conv3d,需要补在静态图下的单测,
- 有一些仅仅在动态图下有定义的api,如sin,需要对python API进行适配升级,然后补全在动态图和静态图下的单测,请参考
【开源任务】新 IR API 推全升级 #57097
二、Task 📚
- 动静统一的python api,需要补全静态图单测的任务
| 序号 | Python API | 所在文件 | 对应单测 | 认领人/PR | 单测覆盖率 |
| ------------ | ------------ | ------------ | ------------ | ------------ | ------------ |
| 1 | reshape | Paddle/python/paddle/sparse/unary.py | test/legacy_test/test_sparse_reshape_op.py | | |
| 2 | add | Paddle/python/paddle/sparse/binary.py | test/deprecated/legacy_test/test_sparse_elementwise_op.py | | |
| 3 | softmax | python/paddle/sparse/nn/functional/activation.py | test/legacy_test/test_sparse_fused_attention_op.py | | |
| 4 | subm_conv3d | python/paddle/sparse/nn/functional/conv.py | test/legacy_test/test_sparse_conv_op.py | | |
| 5 | subm_conv2d | python/paddle/sparse/nn/functional/conv.py | test/legacy_test/test_sparse_conv_op.py | | |
| 6 | max_pool3d | python/paddle/sparse/nn/functional/pooling.py | test/legacy_test/test_sparse_pooling_op.py | | |
2 仅在动态图下有定义的api,需要对python API进行适配升级,然后补全在动态图和静态图下的单测
序号 | Python API | 所在文件 | 对应单测 | 认领人/PR | 单测覆盖率 |
---|---|---|---|---|---|
7 | sin | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
8 | tan | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
9 | asin | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
10 | transpose | python/paddle/sparse/unary.py | test_sparse_transpose_op.py | ||
11 | atan | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
12 | sinh | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
13 | asinh | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
14 | atanh | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
15 | tanh | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
16 | square | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
17 | sqrt | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
18 | log1p | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
19 | pow | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
20 | neg | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
21 | abs | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
22 | cast | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
23 | coalesce | python/paddle/sparse/unary.py | test_sparse_conv_op.py/test_sparse_pca_lowrank.py/test_sparse_utils_op.py | ||
24 | rad2deg | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
25 | deg2rad | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
26 | expm1 | python/paddle/sparse/unary.py | test_sparse_unary_op.py | ||
27 | addmm | python/paddle/sparse/unary.py | test_sparse_addmm_op.py | ||
28 | sparse_csr_tensor | python/paddle/sparse/unary.py | test_sparse_utils_op.py/test_sparse_matmul_op.py | ||
29 | matmul | python/paddle/sparse/binary.py | test_sparse_matmul_op.py | ||
30 | masked_matmul | python/paddle/sparse/binary.py | test_sparse_matmul_op.py | ||
31 | mv | python/paddle/sparse/binary.py | test_sparse_mv_op.py | ||
32 | subtract | python/paddle/sparse/binary.py | test_sparse_elementwise_op.py | ||
33 | multiply | python/paddle/sparse/binary.py | test_sparse_elementwise_op.py | ||
34 | divide | python/paddle/sparse/binary.py | test_sparse_elementwise_op.py | ||
35 | is_same_shape | python/paddle/sparse/binary.py | test_sparse_is_same_shape_op.py | ||
36 | relu6 | python/paddle/sparse/nn/functional/activation.py | test_sparse_unary_op.py | ||
37 | leaky_relu | python/paddle/sparse/nn/functional/activation.py | test_sparse_unary_op.py | ||
38 | leaky_relu | python/paddle/sparse/nn/functional/transformer.py | test_sparse_fused_attention_op.py |
1. 认领方式
请大家以 comment 的形式认领任务,如:
【报名】:1、3、12-13
多个任务之间需要使用中文顿号分隔,报名多个连续任务可用横线表示,如 2-5
2. PR提交
- PR名称需要加前缀 【Migrate Sparse API No.XXX】
- PR描述中需要附上本issue
- 评论里或者 review request @risemeup1 研发会进行审核
看板信息
任务方向 | 任务数量 | 提交作品 / 任务认领 | 提交率 | 完成 | 完成率 |
---|---|---|---|---|---|
【快乐开源】PIR下Sparse算子Python API 适配 | 38 | 0 / 5 | 0.0% | 0 | 0.0% |
统计信息
排名不分先后
1条答案
按热度按时间au9on6nz1#
收到
risemeup1 ***@***.***> 于2024年7月1日周一 11:01写道:
…
问题描述 Please describe your issue 一,背景和任务列表
任务详情和单测验证请参考之前发布的任务: #57097
< #57097 >
序号 Python API 动态图 静态图 Kernel 是否做到动静一致
1 sin 是 @***.https://github.com/MrJs133
https://camo.githubusercontent.com/524bc671642e65cf29ae42797151b3c5b81468cd4a5c61a6f250f237307b4745/68747470733a2f2f696d672e736869656c64732e696f2f62616467652fe78ab6e680812de68aa5e5908d2d324543433731
sin_coo、sin_csr 是
2 tan 是 @***.https://github.com/MrJs133
https://camo.githubusercontent.com/524bc671642e65cf29ae42797151b3c5b81468cd4a5c61a6f250f237307b4745/68747470733a2f2f696d672e736869656c64732e696f2f62616467652fe78ab6e680812de68aa5e5908d2d324543433731
tan_coo、tan_csr 是
3 asin 是 否 asin_coo、asin_csr 是
4 transpose 是 否 transpose_coo、transpose_csr 是
5 sum 是 是 sum_coo、sum_csr 是
6 atan 是 否 atan_coo、atan_csr 是
7 sinh 是 否 sinh_coo、sinh_csr 是
8 asinh 是 否 asinh_coo、asinh_csr 是
9 atanh 是 否 atanh_coo、atanh_csr 是
10 tanh 是 否 tanh_coo、tanh_csr 是
11 square 是 否 square_coo、square_csr 是
12 sqrt 是 否 sqrt_coo、sqrt_csr 是
13 log1p 是 否 log1p_coo、log1p_csr 是
14 cast 是 否 cast_coo、cast_csr 是
15 pow 是 否 pow_coo、pow_csr 是
16 neg 是 否 scale_coo、scale_csr 是
17 abs 是 否 abs_coo、abs_csr 是
18 coalesce 是 否 coalesce_coo 是
19 rad2deg 是 否 cast_coo、cast_csr、scale_coo、scale_csr 是
20 deg2rad 是 否 cast_coo、cast_csr、scale_coo、scale_csr 是
21 expm1 是 否 expm1_coo、expm1_csr 是
22 reshape 是 是 reshape_coo、reshape_csr 是
23 isnan 是 是 isnan_coo、isnan_csr 是
24 slice 是 是 slice_coo、slice_csr 是
25 pca_lowrank 是 是 通过其他 API 组合 是
26 addmm 是 否 addmm_csr_dense、addmm_csr_csr、addmm_coo_dense、addmm_coo_coo 是
27 sparse_coo_tensor 是 是 sparse_coo_tensor 是
28 sparse_csr_tensor 是 否 sparse_csr_tensor 是
29 matmul 是 否
matmul_csr_dense、matmul_csr_csr、matmul_coo_dense、matmul_coo_coo 是
30 masked_matmul 是 否 masked_matmul_csr 是
31 mv 是 否 mv_coo、mv_csr 是
32 add 是 是 add_coo_coo、add_csr_csr、add_coo_dense 是
33 subtract 是 否 subtract_coo_coo、subtract_csr_csr 是
34 multiply 是 否 multiply_coo_coo、multiply_csr_csr 是
35 divide 是 否 divide_coo_coo、divide_csr_csr 是
36 is_same_shape 是 否 tensor method 是
37 relu 是 是 relu_coo、relu_csr 是
38 softmax 是 是 softmax_coo、softmax_csr 是
39 relu6 是 否 relu6_coo、relu6_csr 是
40 leaky_relu 是 否 leaky_relu_coo、leaky_relu_csr 是
41 conv3d 是 是 conv3d_coo 是
42 subm_conv3d 是 是 conv3d_coo 是
43 conv2d 是 是 conv2d_coo 是
44 subm_conv2d 是 是 conv3d_coo 是
45 max_pool3d 是 是 maxpool_coo 是
46 attention 是 否 fused_attention_csr 是
二、Task 📚
序号 Python API 所在文件 对应单测 认领人/PR 单测覆盖率
1 reshape Paddle/python/paddle/sparse/unary.py
test/legacy_test/test_sparse_reshape_op.py
2 add Paddle/python/paddle/sparse/binary.py
test/deprecated/legacy_test/test_sparse_elementwise_op.py
3 softmax python/paddle/sparse/nn/functional/activation.py
test/legacy_test/test_sparse_fused_attention_op.py
4 subm_conv3d python/paddle/sparse/nn/functional/conv.py
test/legacy_test/test_sparse_conv_op.py
5 subm_conv2d python/paddle/sparse/nn/functional/conv.py
test/legacy_test/test_sparse_conv_op.py
6 max_pool3d python/paddle/sparse/nn/functional/pooling.py
test/legacy_test/test_sparse_pooling_op.py
2 仅在动态图下有定义的api,需要对python API进行适配升级,然后补全在动态图和静态图下的单测
序号 Python API 所在文件 对应单测 认领人/PR 单测覆盖率
7 sin python/paddle/sparse/unary.py test_sparse_unary_op.py
8 tan python/paddle/sparse/unary.py test_sparse_unary_op.py
9 asin python/paddle/sparse/unary.py test_sparse_unary_op.py
10 transpose python/paddle/sparse/unary.py test_sparse_transpose_op.py
11 atan python/paddle/sparse/unary.py test_sparse_unary_op.py
12 sinh python/paddle/sparse/unary.py test_sparse_unary_op.py
13 asinh python/paddle/sparse/unary.py test_sparse_unary_op.py
14 atanh python/paddle/sparse/unary.py test_sparse_unary_op.py
15 tanh python/paddle/sparse/unary.py test_sparse_unary_op.py
16 square python/paddle/sparse/unary.py test_sparse_unary_op.py
17 sqrt python/paddle/sparse/unary.py test_sparse_unary_op.py
18 log1p python/paddle/sparse/unary.py test_sparse_unary_op.py
19 pow python/paddle/sparse/unary.py test_sparse_unary_op.py
20 neg python/paddle/sparse/unary.py test_sparse_unary_op.py
21 abs python/paddle/sparse/unary.py test_sparse_unary_op.py
22 cast python/paddle/sparse/unary.py test_sparse_unary_op.py
23 coalesce python/paddle/sparse/unary.py
test_sparse_conv_op.py/test_sparse_pca_lowrank.py/test_sparse_utils_op.py
24 rad2deg python/paddle/sparse/unary.py test_sparse_unary_op.py
25 deg2rad python/paddle/sparse/unary.py test_sparse_unary_op.py
26 expm1 python/paddle/sparse/unary.py test_sparse_unary_op.py
27 addmm python/paddle/sparse/unary.py test_sparse_addmm_op.py
28 sparse_csr_tensor python/paddle/sparse/unary.py
test_sparse_utils_op.py/test_sparse_matmul_op.py
29 matmul python/paddle/sparse/binary.py test_sparse_matmul_op.py
30 masked_matmul python/paddle/sparse/binary.py test_sparse_matmul_op.py
31 mv python/paddle/sparse/binary.py test_sparse_mv_op.py
32 subtract python/paddle/sparse/binary.py test_sparse_elementwise_op.py
33 multiply python/paddle/sparse/binary.py test_sparse_elementwise_op.py
34 divide python/paddle/sparse/binary.py test_sparse_elementwise_op.py
35 is_same_shape python/paddle/sparse/binary.py
test_sparse_is_same_shape_op.py
36 relu6 python/paddle/sparse/nn/functional/activation.py
test_sparse_unary_op.py
37 leaky_relu python/paddle/sparse/nn/functional/activation.py
test_sparse_unary_op.py
38 leaky_relu python/paddle/sparse/nn/functional/transformer.py
test_sparse_fused_attention_op.py 1. 认领方式
请大家以 comment 的形式认领任务,如:
【报名】:1、3、12-13
多个任务之间需要使用中文顿号分隔,报名多个连续任务可用横线表示,如 2-5
2. PR提交
看板信息
任务方向 任务数量 提交作品 / 任务认领 提交率 完成 完成率
【快乐开源】PIR下Sparse算子Python API 适配 14 0 / 2 0.0% 0 0.0% 统计信息
排名不分先后
—
Reply to this email directly, view it on GitHub
<#64492>, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYQIV66OX4MJN6YOHUXJCYLZKDBBBAVCNFSM6AAAAABIBE6YRKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMYDONZQGI3DONI
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
你不用搞了