Skip to content

测试基建:🧪 补齐 FP8 融合算子精度测试支持,修复 GPU 测试模式#674

Merged
cangtianhuang merged 16 commits into
PFCCLab:mainfrom
cangtianhuang:feat/fp8-accuracy-test
Jul 15, 2026
Merged

测试基建:🧪 补齐 FP8 融合算子精度测试支持,修复 GPU 测试模式#674
cangtianhuang merged 16 commits into
PFCCLab:mainfrom
cangtianhuang:feat/fp8-accuracy-test

Conversation

@cangtianhuang

@cangtianhuang cangtianhuang commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

🧭 背景

PaddleAPITest 通过将 Paddle API 转换为 Torch 参考实现来进行前向和反向精度对比。paddle.incubate.nn.functional.fp8_quant_blockwisefused_act_dequant 涉及 FP8 量化、scale 计算及激活反量化路径,缺少对应转换规则时无法建立可比的 Torch 基线,相关算子的精度回归也无法纳入自动化验证。

FP8 场景同时依赖 GPU 输入与输出的生命周期管理。此前 use_gpu_cache_mode 的命名只能表达缓存语义,实际行为还包含 GPU 模式下的清理策略;并且 Paddle 的 NaN/Inf 数值检查错误未被归为 paddle_error,会降低失败结果的可读性。

🛠️ 实现方案

为两个 Paddle API 在映射表中注册专用 Rule,并在转换规则中生成独立的 Torch 参考计算。fp8_quant_blockwise 按内核语义计算 block-wise amax、量化 scale 和反向存储 scale,支持 1x128128x128 两种量化方式以及转置、pow2 scale 和 UE8M0 scale 等配置;量化结果使用 Torch 的 float8_e4m3fn 表示。fused_act_dequant 将 scale、反量化与激活逻辑转换为可执行的 Torch 路径。

同时将全链路 GPU 开关统一为 use_gpu_mode / USE_GPU_MODE,使引擎、运行配置和输入构造共享同一语义,并保留 GPU 模式下跳过清理的行为。运行时错误分类补充 NaN/Inf 数值检查标识,确保该类 Paddle 侧失败被稳定记录。

🔧 主要变更

1. 新增 FP8 算子的 Torch 参考实现

fp8_quant_blockwisefused_act_dequant 增加映射和转换规则,补齐必填参数默认值,使自动生成 case 可以转换并进入 Paddle/Torch 精度比对流程。

fp8_quant_blockwise 的参考实现覆盖 block-wise scale 计算、量化输出、scale 转置及仅返回转置结果等分支,并对不支持的量化方式显式报错,避免产生无效对比结果。

2. 统一 GPU 模式配置

use_gpu_cache_mode 统一更名为 use_gpu_mode,同步更新 V2/V4 引擎、启动脚本、YAML 配置和配置 schema。GPU 模式不再只被理解为输入缓存开关,设备缓存清理与 Tensor 构造逻辑均由统一配置控制。

3. 完善精度任务失败分类

将 Paddle 的 There are nan or infcheck_numerics 错误归类为 paddle_error,避免数值检查失败被错误归入其他运行时异常类别。

📁 改动文件

类别 文件 功能说明
FP8 转换 tester/paddle_to_torch/mapping.json 注册 FP8 算子映射并补齐默认参数
FP8 转换 tester/paddle_to_torch/rules.py 实现 FP8 量化和融合激活反量化的 Torch 参考规则
运行时分类 tester/base.py 将 NaN/Inf 数值检查失败归为 Paddle 错误
GPU 模式 engineV2.pyengineV4.pyrun.py 统一命令行与引擎侧 GPU 模式开关
GPU 模式 tester/api_config/config_analyzer.pytester/accuracy.py 基于统一 GPU 模式构造输入并执行精度对比
配置与脚本 test_pipeline/run_config.yamltest_pipeline/run_config.schema.jsonrun-example.shrun-v4.sh 更新配置字段和示例启动参数

@cangtianhuang cangtianhuang changed the title Feat/fp8 accuracy test 测试基建:🧪 补齐 FP8 量化与反量化精度测试支持,修复 GPU 测试模式 Jul 14, 2026
@paddle-bot

paddle-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown

Thanks for your contribution!

@cangtianhuang cangtianhuang changed the title 测试基建:🧪 补齐 FP8 量化与反量化精度测试支持,修复 GPU 测试模式 测试基建:🧪 补齐 FP8 融合算子精度测试支持,修复大 Tensor OOM 错误分类 Jul 15, 2026
@cangtianhuang cangtianhuang changed the title 测试基建:🧪 补齐 FP8 融合算子精度测试支持,修复大 Tensor OOM 错误分类 测试基建:🧪 补齐 FP8 融合算子精度测试支持,修复 GPU 测试模式 Jul 15, 2026
@cangtianhuang
cangtianhuang merged commit 0283197 into PFCCLab:main Jul 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant