]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
CUDA: fix build error from ambiguous __half conversions in conv2d (#15690)
authorAkarshan Biswas <redacted>
Mon, 1 Sep 2025 01:25:06 +0000 (06:55 +0530)
committerGitHub <redacted>
Mon, 1 Sep 2025 01:25:06 +0000 (06:55 +0530)
commitb66df9d9c942254d03209186ef24ed7c994a576e
tree3821e8d93be5aed39a39ad07c89017cb18cfee07
parentb9382c3877c6067feccf182efe9449a2d1cb24c7
CUDA: fix build error from ambiguous __half conversions in conv2d (#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
ggml/src/ggml-cuda/conv2d.cu