Spaces:
Running
Running
ggml: fix zero division in ‘dne’ calculation in CUDA COUNT_EQUAL operator when ‘ne’ is small (#10213)
Browse files
ggml/src/ggml-cuda/count-equal.cu
CHANGED
|
@@ -44,7 +44,7 @@ void ggml_cuda_count_equal(ggml_backend_cuda_context & ctx, ggml_tensor * dst) {
|
|
| 44 |
|
| 45 |
const int64_t ne = ggml_nelements(src0);
|
| 46 |
GGML_ASSERT(ne < (1 << 30) && "atomicAdd implementation only supports int");
|
| 47 |
-
const int64_t dne = GGML_PAD(ne / (4*nsm), CUDA_COUNT_EQUAL_CHUNK_SIZE);
|
| 48 |
|
| 49 |
CUDA_CHECK(cudaMemsetAsync(dst_d, 0, ggml_nbytes(dst), stream));
|
| 50 |
|
|
|
|
| 44 |
|
| 45 |
const int64_t ne = ggml_nelements(src0);
|
| 46 |
GGML_ASSERT(ne < (1 << 30) && "atomicAdd implementation only supports int");
|
| 47 |
+
const int64_t dne = GGML_PAD((ne + 4*nsm - 1) / (4*nsm), CUDA_COUNT_EQUAL_CHUNK_SIZE);
|
| 48 |
|
| 49 |
CUDA_CHECK(cudaMemsetAsync(dst_d, 0, ggml_nbytes(dst), stream));
|
| 50 |
|