]> git.djapps.eu Git - pkg/ggml/sources/ggml/commit
CUDA: fix build error from ambiguous __half conversions in conv2d (llama/15690)
authorAkarshan Biswas <redacted>
Mon, 1 Sep 2025 01:25:06 +0000 (06:55 +0530)
committerGeorgi Gerganov <redacted>
Fri, 5 Sep 2025 09:54:09 +0000 (12:54 +0300)
commita2a9beb93fdee9b5a474693aaf5864debb747271
tree86681f304c04c87b9a1c4fd5c0ac77c562118702
parent886e6e600786b1beb9debcf8170f4cc0df15d35f
CUDA: fix build error from ambiguous __half conversions in conv2d (llama/15690)

* CUDA: fix build error from ambiguous __half conversions in conv2d

Building conv2d with half precision failed because `__half` defines
multiple implicit conversion operators (to float, int, short, etc.),
causing ambiguous overload resolution when multiplying with float.

Introduce a templated `to_float` helper that explicitly converts
`__half` via `__half2float`, while passing through float unchanged.
Use this helper in conv2d accumulation to ensure unambiguous and
correct promotion to float.

Fixes some build errors with half-precision kernels on CUDA.

ggml-ci

* CUDA: Replace custom to_float helper with unified ggml_cuda_cast and add half‑>float conversion

* CUDA: Add missing convert.cuh header

* CUDA: remove unnecessary extension in ggml_cuda_cast

* CUDA: Address review comment, remove second type template argument
src/ggml-cuda/conv2d.cu