From 094e43efe80dc0994b605b4c8e562c25eee92c48 Mon Sep 17 00:00:00 2001 From: Kyotak Date: Fri, 20 Jun 2025 17:02:06 +0800 Subject: [PATCH 1/3] fix cumsum --- backends/npu/kernels/cum_kernel.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/backends/npu/kernels/cum_kernel.cc b/backends/npu/kernels/cum_kernel.cc index e7000409244..aa21a1ac895 100644 --- a/backends/npu/kernels/cum_kernel.cc +++ b/backends/npu/kernels/cum_kernel.cc @@ -72,13 +72,16 @@ void AclopCumsumKernel(const Context& dev_ctx, bool flatten, bool exclusive, bool reverse, + phi::DataType dtype, phi::DenseTensor* out) { dev_ctx.template Alloc(out); auto axis = axis_scalar.to(); - NPUAttributeMap attr_input = { - {"axis", axis}, {"exclusive", exclusive}, {"reverse", reverse}}; + NPUAttributeMap attr_input = {{"axis", axis}, + {"exclusive", exclusive}, + {"reverse", reverse}, + {"dtype", dtype}}; if (flatten) { PADDLE_ENFORCE_EQ( @@ -105,11 +108,12 @@ void CumsumKernel(const Context& dev_ctx, bool flatten, bool exclusive, bool reverse, + phi::DataType dtype, phi::DenseTensor* out) { DO_COMPATIBILITY( aclnnCumsumV2, (custom_kernel::AclopCumsumKernel( - dev_ctx, x, axis_scalar, flatten, exclusive, reverse, out))); + dev_ctx, x, axis_scalar, flatten, exclusive, reverse, dtype, out))); dev_ctx.template Alloc(out); auto axis = axis_scalar.to(); From 8ee2c845a184a8e5497a21aeadbaa57ed60ad48b Mon Sep 17 00:00:00 2001 From: Kyotak Date: Fri, 20 Jun 2025 19:36:52 +0800 Subject: [PATCH 2/3] fix attributeMap --- backends/npu/kernels/cum_kernel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/npu/kernels/cum_kernel.cc b/backends/npu/kernels/cum_kernel.cc index aa21a1ac895..d248d2f366b 100644 --- a/backends/npu/kernels/cum_kernel.cc +++ b/backends/npu/kernels/cum_kernel.cc @@ -81,7 +81,7 @@ void AclopCumsumKernel(const Context& dev_ctx, NPUAttributeMap attr_input = {{"axis", axis}, {"exclusive", exclusive}, {"reverse", reverse}, - {"dtype", dtype}}; + {"dtype", static_cast(dtype)}}; if (flatten) { PADDLE_ENFORCE_EQ( From bb7b9377789975bcb211846f9be26883a103f70d Mon Sep 17 00:00:00 2001 From: Kyotak Date: Sat, 21 Jun 2025 14:52:51 +0800 Subject: [PATCH 3/3] fix --- backends/npu/kernels/cum_kernel.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backends/npu/kernels/cum_kernel.cc b/backends/npu/kernels/cum_kernel.cc index d248d2f366b..db1a0169b68 100644 --- a/backends/npu/kernels/cum_kernel.cc +++ b/backends/npu/kernels/cum_kernel.cc @@ -129,9 +129,11 @@ void CumsumKernel(const Context& dev_ctx, Tensor new_x(x); new_x.Resize(phi::make_ddim({x.numel()})); - EXEC_NPU_CMD(aclnnCumsumV2, dev_ctx, new_x, axis, exclusive, reverse, *out); + EXEC_NPU_CMD( + aclnnCumsumV2, dev_ctx, new_x, axis, exclusive, reverse, dtype, *out); } else { - EXEC_NPU_CMD(aclnnCumsumV2, dev_ctx, x, axis, exclusive, reverse, *out); + EXEC_NPU_CMD( + aclnnCumsumV2, dev_ctx, x, axis, exclusive, reverse, dtype, *out); } }