From: SXX Date: Sat, 9 Nov 2024 07:35:46 +0000 (+0800) Subject: ggml: fix zero division in ‘dne’ calculation in CUDA COUNT_EQUAL operator when ‘ne... X-Git-Tag: upstream/1.7.4~233 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=b890243690cd0fad180f05f7f9016e5797946688;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp ggml: fix zero division in ‘dne’ calculation in CUDA COUNT_EQUAL operator when ‘ne’ is small (#10213) --- diff --git a/ggml/src/ggml-cuda/count-equal.cu b/ggml/src/ggml-cuda/count-equal.cu index ffb053b1..08898115 100644 --- a/ggml/src/ggml-cuda/count-equal.cu +++ b/ggml/src/ggml-cuda/count-equal.cu @@ -44,7 +44,7 @@ void ggml_cuda_count_equal(ggml_backend_cuda_context & ctx, ggml_tensor * dst) { const int64_t ne = ggml_nelements(src0); GGML_ASSERT(ne < (1 << 30) && "atomicAdd implementation only supports int"); - const int64_t dne = GGML_PAD(ne / (4*nsm), CUDA_COUNT_EQUAL_CHUNK_SIZE); + const int64_t dne = GGML_PAD((ne + 4*nsm - 1) / (4*nsm), CUDA_COUNT_EQUAL_CHUNK_SIZE); CUDA_CHECK(cudaMemsetAsync(dst_d, 0, ggml_nbytes(dst), stream));