diff --git a/crates/ml/src/cuda_pipeline/c51_loss_kernel.cu b/crates/ml/src/cuda_pipeline/c51_loss_kernel.cu index bd2f33ab1..21a55e4a2 100644 --- a/crates/ml/src/cuda_pipeline/c51_loss_kernel.cu +++ b/crates/ml/src/cuda_pipeline/c51_loss_kernel.cu @@ -708,6 +708,7 @@ extern "C" __global__ void c51_loss_reduce( float* __restrict__ total_loss, /* [1] output */ int batch_size ) { + if (threadIdx.x != 0) return; /* single writer — total_loss[0] */ float sum = 0.0f; for (int i = 0; i < batch_size; i++) { sum += per_sample_loss[i];