From a6c5b1c7fe627124151998fd2a5db6cd8209a6f8 Mon Sep 17 00:00:00 2001 From: askmyteapot <62238146+askmyteapot@users.noreply.github.com> Date: Mon, 5 Jan 2026 17:03:22 +1000 Subject: [PATCH 1/6] Fix building on GCC 14.2 --- src/libtorchaudio/rnnt/gpu/compute.cu | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/libtorchaudio/rnnt/gpu/compute.cu b/src/libtorchaudio/rnnt/gpu/compute.cu index 03bad83b8e..09616a2f2b 100644 --- a/src/libtorchaudio/rnnt/gpu/compute.cu +++ b/src/libtorchaudio/rnnt/gpu/compute.cu @@ -21,7 +21,8 @@ std::tuple compute( Tensor target_lengths, int64_t blank, double clamp, - bool fused_log_softmax = true) { + bool fused_log_softmax) +{ STD_TORCH_CHECK(logits.is_cuda(), "logits must be on CUDA"); STD_TORCH_CHECK( @@ -129,9 +130,24 @@ std::tuple compute( return std::make_tuple(costs, gradients); } - +std::tuple compute_default( + Tensor logits, + Tensor targets, + Tensor logit_lengths, + Tensor target_lengths, + int64_t blank, + double clamp) { + return compute( + logits, + targets, + logit_lengths, + target_lengths, + blank, + clamp, + /*fused_log_softmax=*/true); +} STABLE_TORCH_LIBRARY_IMPL(torchaudio, CUDA, m) { - m.impl("rnnt_loss_forward", TORCH_BOX(&compute)); + m.impl("rnnt_loss_forward", TORCH_BOX(&compute_default)); } } // namespace gpu From 3a4542a40934f75333490aa844de12fc773e7a5e Mon Sep 17 00:00:00 2001 From: askmyteapot <62238146+askmyteapot@users.noreply.github.com> Date: Tue, 6 Jan 2026 00:28:22 +1000 Subject: [PATCH 2/6] fixing unit test failure --- src/libtorchaudio/rnnt/gpu/compute.cu | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libtorchaudio/rnnt/gpu/compute.cu b/src/libtorchaudio/rnnt/gpu/compute.cu index 09616a2f2b..376c4e0113 100644 --- a/src/libtorchaudio/rnnt/gpu/compute.cu +++ b/src/libtorchaudio/rnnt/gpu/compute.cu @@ -136,7 +136,8 @@ std::tuple compute_default( Tensor logit_lengths, Tensor target_lengths, int64_t blank, - double clamp) { + double clamp, + bool fused_log_softmax) { return compute( logits, targets, @@ -144,7 +145,7 @@ std::tuple compute_default( target_lengths, blank, clamp, - /*fused_log_softmax=*/true); + fused_log_softmax); } STABLE_TORCH_LIBRARY_IMPL(torchaudio, CUDA, m) { m.impl("rnnt_loss_forward", TORCH_BOX(&compute_default)); From 48a2c0d660a84e1b89141a46ae5d037913dbf8bb Mon Sep 17 00:00:00 2001 From: askmyteapot <62238146+askmyteapot@users.noreply.github.com> Date: Tue, 6 Jan 2026 19:58:27 +1000 Subject: [PATCH 3/6] minimal patch changes --- src/libtorchaudio/rnnt/gpu/compute.cu | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/libtorchaudio/rnnt/gpu/compute.cu b/src/libtorchaudio/rnnt/gpu/compute.cu index 376c4e0113..89857fc0b0 100644 --- a/src/libtorchaudio/rnnt/gpu/compute.cu +++ b/src/libtorchaudio/rnnt/gpu/compute.cu @@ -130,25 +130,9 @@ std::tuple compute( return std::make_tuple(costs, gradients); } -std::tuple compute_default( - Tensor logits, - Tensor targets, - Tensor logit_lengths, - Tensor target_lengths, - int64_t blank, - double clamp, - bool fused_log_softmax) { - return compute( - logits, - targets, - logit_lengths, - target_lengths, - blank, - clamp, - fused_log_softmax); -} + STABLE_TORCH_LIBRARY_IMPL(torchaudio, CUDA, m) { - m.impl("rnnt_loss_forward", TORCH_BOX(&compute_default)); + m.impl("rnnt_loss_forward", TORCH_BOX(&compute)); } } // namespace gpu From 2b1476264031efe13811f73435d44cea308ab2d5 Mon Sep 17 00:00:00 2001 From: askmyteapot <62238146+askmyteapot@users.noreply.github.com> Date: Tue, 6 Jan 2026 20:04:54 +1000 Subject: [PATCH 4/6] Update cpu compute.cpp --- src/libtorchaudio/rnnt/cpu/compute.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libtorchaudio/rnnt/cpu/compute.cpp b/src/libtorchaudio/rnnt/cpu/compute.cpp index c8b0f473d7..a927b5ac9a 100644 --- a/src/libtorchaudio/rnnt/cpu/compute.cpp +++ b/src/libtorchaudio/rnnt/cpu/compute.cpp @@ -21,7 +21,7 @@ std::tuple compute( Tensor target_lengths, int64_t blank, double clamp, - bool fused_log_softmax = true) { + bool fused_log_softmax) { STD_TORCH_CHECK(logits.is_cpu(), "logits must be on CPU"); STD_TORCH_CHECK( From 9e16334766e1b08dfe0f24942ded72a55077f308 Mon Sep 17 00:00:00 2001 From: askmyteapot <62238146+askmyteapot@users.noreply.github.com> Date: Tue, 6 Jan 2026 20:05:37 +1000 Subject: [PATCH 5/6] Update compute.cu gpu (remove unneeded new line) --- src/libtorchaudio/rnnt/gpu/compute.cu | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libtorchaudio/rnnt/gpu/compute.cu b/src/libtorchaudio/rnnt/gpu/compute.cu index 89857fc0b0..1c7029ba90 100644 --- a/src/libtorchaudio/rnnt/gpu/compute.cu +++ b/src/libtorchaudio/rnnt/gpu/compute.cu @@ -21,8 +21,7 @@ std::tuple compute( Tensor target_lengths, int64_t blank, double clamp, - bool fused_log_softmax) -{ + bool fused_log_softmax) { STD_TORCH_CHECK(logits.is_cuda(), "logits must be on CUDA"); STD_TORCH_CHECK( From 37e54d4f27cc2a32825218862db6af0e6242fb0e Mon Sep 17 00:00:00 2001 From: askmyteapot <62238146+askmyteapot@users.noreply.github.com> Date: Tue, 6 Jan 2026 20:06:32 +1000 Subject: [PATCH 6/6] Update compute.cu --- src/libtorchaudio/rnnt/gpu/compute.cu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libtorchaudio/rnnt/gpu/compute.cu b/src/libtorchaudio/rnnt/gpu/compute.cu index 1c7029ba90..7e99fec395 100644 --- a/src/libtorchaudio/rnnt/gpu/compute.cu +++ b/src/libtorchaudio/rnnt/gpu/compute.cu @@ -21,7 +21,7 @@ std::tuple compute( Tensor target_lengths, int64_t blank, double clamp, - bool fused_log_softmax) { + bool fused_log_softmax) { STD_TORCH_CHECK(logits.is_cuda(), "logits must be on CUDA"); STD_TORCH_CHECK(