Skip to content

【启航计划】PaddlePaddle GPU单测修复 #75208

@YqGe585

Description

@YqGe585

背景

飞桨框架迭代较快,其部分单测没有跟框架同步更新,导致当前很多单测处于不可用状态。

涉及范围

  • 截止 2025-09-03 的 develop 分支, 排查后发现有 22 个在 GPU 上报错的算子单测
  • 本期仅修复算子单测报错

任务

表格中为单测名称,具体文件位于Paddle/test/legacy_test/目录下,文件名为单测名称.py。例如test_activation_op对应的单测文件是Paddle/test/legacy_test/test_activation_op.py

序号 单测名称 认领人 / 状态 / PR号
1 test_activation_op @scyyh11
2 test_adam_op
3 test_conv3d_transpose_op
4 test_dropout_op
5 test_elementwise_div_op @ooooo-create #75288
6 test_gather_op
7 test_logical_op
8 test_mean_op @WanRui37
9 test_memcpy_op @Dayuxiaoshui
10 test_normal @Echo-Nie #75274
11 test_stack_op @ooooo-create #75275
12 test_transformer_api
13 test_conv2d_transpose_op @Dayuxiaoshui
14 test_matmul_v2_op
15 test_allgather
16 test_reducescatter
17 test_flash_attention
18 test_fused_dot_product_attention_op
19 test_fused_dot_product_attention_op_static
20 test_pyramid_hash_op @Echo-Nie #75289
21 test_fleet_pyramid_hash
22 test_fused_dconv_drelu_dbn_op

示例修复

参考 PR: #74839

test_conv2d_op 为例,其报错原因是 Paddle 中的数据类型在不同情况下对应不同对象:

  • paddle.float32 可能对应 VarDesc.VarType.FP32DataType.FLOAT32
  • 对 Tensor 数据类型判断时,仅使用 paddle.float32 可能导致判断失败

因此在 op_test.py 中做了对应修改。

注意:不同单测可能存在完全不同的问题,本示例仅作为参考。

复现报错的方式如下。首先参考编译说明进行paddle的编译和安装。需要注意在执行cmake时,添加-DWITH_TESTING=ON。例如:cmake .. -DPY_VERSION=3.10 -DWITH_GPU=ON -DWITH_DISTRIBUTE=ON -DWITH_TESTING=ON。随后参考运行单元测试

代码提交方式

  1. 了解代码规范:开发规范文档以及代码贡献流程
  2. 基于 Paddle 的 develop 分支进行开发
  3. 修复完成后,需要在本地验证通过后提交 PR贡献到Paddle仓库。

认领方式

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

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

看板信息

任务方向 任务数量 提交作品 / 任务认领 提交率 完成 完成率
GPU单测修复 22 4 / 8 18.18% 3 13.64%

统计信息

排名不分先后 @ooooo-create (2) @Echo-Nie (1)

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions