ggml-cuda : add explicit casts to -INFINITY for float and half2 types

This commit adds explicit casts to float for -INFINITY.

The motivation for this is that in CUDA 11.8.0, the -INFINITY macro is
defined as a double (a header provided NVCC). This triggers a warning
and hence causes a CI failure in whisper.cpp. I belive that this header
might have been updated in CUDA 12 which is why we don't see this
warning.

Refs: https://github.com/ggml-org/whisper.cpp/actions/runs/25713948217/job/75500081939?pr=3803
Refs: https://github.com/ggml-org/llama.cpp/issues/22824
This commit is contained in:
Daniel Bevenius 2026-05-12 07:59:24 +02:00
parent 4babfd4114
commit a2839b4404
1 changed files with 2 additions and 2 deletions

View File

@ -582,9 +582,9 @@ template <typename T> struct block_reduce_policy<block_reduce_method::MAX, T> {
static __device__ T sentinel() {
if constexpr (std::is_same_v<T, float>) {
return -INFINITY;
return -(float)INFINITY;
} else if constexpr (std::is_same_v<T, half2>) {
return make_half2(-INFINITY, -INFINITY);
return make_half2(__float2half(-(float)INFINITY), __float2half(-(float)INFINITY));
} else {
static_assert(ggml_cuda_dependent_false_v<T>, "Unsupported type for block reduce max");
}