Skip to content

[WarpCTC] fix SIGFPE/CUDA error(700)/SIGSEGV when 0-size tensor passed to ctc_loss#78250

Open
DanielSun11 wants to merge 2 commits intoPaddlePaddle:developfrom
DanielSun11:fix/warpctc-0size-tensor
Open

[WarpCTC] fix SIGFPE/CUDA error(700)/SIGSEGV when 0-size tensor passed to ctc_loss#78250
DanielSun11 wants to merge 2 commits intoPaddlePaddle:developfrom
DanielSun11:fix/warpctc-0size-tensor

Conversation

@DanielSun11
Copy link
Contributor

@DanielSun11 DanielSun11 commented Mar 10, 2026

PR Category

Operator Mechanism

PR Types

Bug fixes

Description

paddle.nn.functional.ctc_loss 在传入 0-size 张量时会触发进程崩溃,本 PR 对三类场景进行修复。

修复了三类崩溃:

  1. label形状[0, max_len]时 SIGFPE/CUDA error(700):在warpctc_kernel_impl.h中添加label.numel()==0早返回
  2. input_lengths形状[0]时 SIGSEGV:在lod构建循环前添加logits_length_cpu.numel()==0检查
  3. labels_length形状[0]时 SIGSEGV:同上检查labels_length_cpu.numel()==0

同时在sequence_padding.cu的GPUContext特化版本中添加0-size安全兜底保护。
新增TestCTCLossZeroSizeTensor单测类覆盖三种崩溃场景。

是否引起精度变化

…ssed to ctc_loss

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@paddle-bot
Copy link

paddle-bot bot commented Mar 10, 2026

你的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.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

1 participant