Skip to content

Conversation

@DanielSun11
Copy link
Contributor

@DanielSun11 DanielSun11 commented Nov 28, 2025

PR Category

Execute Infrastructure

PR Types

New features

Description

支持在前向执行时添加一个backward_vlog_guard,实现在反向执行时打印guard内捕获的反向GradNode的日志。

使用方法

import paddle
from paddle.base.framework import capture_backward_subgraph_guard,backward_vlog_guard
x = paddle.randn([2,3],dtype="float32")
y = paddle.randn([2,3],dtype="float64")
x.stop_gradient = False
y.stop_gradient = False
z1 = x - y
z2 = x + y
with backward_vlog_guard(4):
    z3 = z1 * z2
z4 = z3.sum()
loss = z4
loss.sum().backward()

输出的日志:

只有multiply_grad 的日志信息,执行其他GradNode的时候不打印任何日志

W1128 18:11:17.496543 330082 gpu_resources.cc:116] Please NOTE: device: 0, GPU Compute Capability: 9.0, Driver API Version: 12.9, Runtime API Version: 12.9
W1128 18:11:17.506551 330082 dygraph_functions.cc:127938] Got different data type, run type promotion automatically, this may cause data type been changed.
W1128 18:11:17.639621 330082 dygraph_functions.cc:119953] Got different data type, run type promotion automatically, this may cause data type been changed.
4
I1128 18:11:17.656737 330082 backward.cc:501] multiply1GradNode(0x15d65c70) begin run 
I1128 18:11:17.656770 330082 multiply_node.cc:49] 
==========================Running_AD_API_GRAD: multiply_grad==========================
I1128 18:11:17.656828 330082 multiply_node.cc:136] { Input: [ 
( grad_out , [{
        Name: multiply1_out_float64_2x3@Grad,
        Initialized: 1,
        Tensor_Ptr:0x15d651f0,
        Tensor_Impl_Ptr: 0x172a0100 }]),  
( x , [{
        Name: None,
        Initialized: 1,
        Tensor_Ptr:0x7ffcdb762880,
        Tensor_Impl_Ptr: 0xd1a9410 }]),  
( y , [{
        Name: None,
        Initialized: 1,
        Tensor_Ptr:0x7ffcdb7628c0,
        Tensor_Impl_Ptr: 0x15d63360 }]), ]} 
I1128 18:11:17.656849 330082 multiply_node.cc:146] 
==========================Running_C++_API: multiply_grad1==========================
I1128 18:11:17.656862 330082 backward_api_base.cc:80976] multiply_grad API kernel key: [GPUDNN, NCHW, float64]
I1128 18:11:17.656877 330082 backward_api_base.cc:80983] multiply_grad kernel: {"input":[
        backend: GPU,  layout: STRIDED,  dtype: float64,
        backend: GPU,  layout: STRIDED,  dtype: float64,
        backend: GPU,  layout: STRIDED,  dtype: float64
],
"output":[
        backend: GPU,  layout: STRIDED,  dtype: float64,
        backend: GPU,  layout: STRIDED,  dtype: float64
],
"attribute":[
        "int"
]}
I1128 18:11:17.656929 330082 multiply_node.cc:166] Fused api multiply_grad is called 
I1128 18:11:17.656931 330082 multiply_node.cc:168] 
==========================Finish_C++_API: multiply_grad1==========================
I1128 18:11:17.656947 330082 multiply_node.cc:279] { Input: [ 
( grad_out , [{
        Name: multiply1_out_float64_2x3@Grad,
        Initialized: 1,
        Tensor_Ptr:0x15d651f0,
        Tensor_Impl_Ptr: 0x172a0100 }]),  
( x , [{
        Name: None,
        Initialized: 1,
        Tensor_Ptr:0x7ffcdb762880,
        Tensor_Impl_Ptr: 0xd1a9410 }]),  
( y , [{
        Name: None,
        Initialized: 1,
        Tensor_Ptr:0x7ffcdb7628c0,
        Tensor_Impl_Ptr: 0x15d63360 }]), ],  
 Output: [ 
 ( grad_x , [{
        Name: subtract1_out_float64_2x3@Grad,
        Initialized: 1,
        Tensor_Ptr:0x17498790,
        Tensor_Impl_Ptr: 0x174987f0 }]),  
 ( grad_y , [{
        Name: add1_out_float64_2x3@Grad,
        Initialized: 1,
        Tensor_Ptr:0x172a0050,
        Tensor_Impl_Ptr: 0x15d67350 }]), ] } 
I1128 18:11:17.656982 330082 multiply_node.cc:293] 
==========================Finish_AD_API_GRAD: multiply_grad==========================
I1128 18:11:17.656986 330082 backward.cc:548] multiply1GradNode(0x15d65c70) Found pending node: subtract1GradNode(0xd1a8ae0)
I1128 18:11:17.656993 330082 backward.cc:548] multiply1GradNode(0x15d65c70) Found pending node: add1GradNode(0x15d62af0)

@paddle-bot
Copy link

paddle-bot bot commented Nov 28, 2025

你的PR提交成功,感谢你对开源项目的贡献!
请关注后续CI自动化测试结果,详情请参考Paddle-CI手册
Your PR has been submitted. Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.

@codecov-commenter
Copy link

codecov-commenter commented Nov 28, 2025

Codecov Report

❌ Patch coverage is 91.93548% with 5 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (develop@5f1358c). Learn more about missing BASE report.

Files with missing lines Patch % Lines
paddle/fluid/eager/api/utils/global_utils.h 78.26% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             develop   #76685   +/-   ##
==========================================
  Coverage           ?   91.93%           
==========================================
  Files              ?        4           
  Lines              ?       62           
  Branches           ?        0           
==========================================
  Hits               ?       57           
  Misses             ?        5           
  Partials           ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

@wanghuancoder wanghuancoder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants