Context from leehack/llamadart#222:
While testing listGpuDevices(probeBackends: [GpuBackend.cuda]), @elana-voss reported that the CUDA backend hard-crashes on an NVIDIA GeForce RTX 5050 Laptop GPU (Blackwell). Vulkan on the same Windows laptop enumerated both the AMD Radeon 860M iGPU and RTX 5050 dGPU correctly, and Metal enumeration worked on macOS.
This appears separate from the Dart listGpuDevices enumeration change: the crash happens when the native CUDA backend module loads, before device enumeration runs. The relevant path is ggml_backend_load("cuda") initializing the upstream llama.cpp CUDA backend; CUDA runtime calls in that initializer can abort the process via GGML_ABORT.
Could you provide a few more details so we can isolate whether this is a llamadart-native packaging issue, an upstream llama.cpp CUDA issue, or a driver/runtime issue?
- Native stderr/stdout from the crash, especially any
CUDA error or GGML_ABORT lines.
- Windows Event Viewer / crash dialog details if available.
- NVIDIA driver version and
nvidia-smi output.
- The llamadart-native tag / package version used.
- Whether the same machine can reproduce with upstream llama.cpp directly, for example
llama-cli --list-devices or any minimal upstream command that loads the CUDA backend.
- Whether updating the NVIDIA driver changes the behavior.
Until we have that, the expected workaround is to avoid explicit CUDA probing on this hardware and use the Vulkan backend path, which was reported to enumerate correctly.
Context from leehack/llamadart#222:
While testing
listGpuDevices(probeBackends: [GpuBackend.cuda]), @elana-voss reported that the CUDA backend hard-crashes on an NVIDIA GeForce RTX 5050 Laptop GPU (Blackwell). Vulkan on the same Windows laptop enumerated both the AMD Radeon 860M iGPU and RTX 5050 dGPU correctly, and Metal enumeration worked on macOS.This appears separate from the Dart
listGpuDevicesenumeration change: the crash happens when the native CUDA backend module loads, before device enumeration runs. The relevant path isggml_backend_load("cuda")initializing the upstream llama.cpp CUDA backend; CUDA runtime calls in that initializer can abort the process viaGGML_ABORT.Could you provide a few more details so we can isolate whether this is a llamadart-native packaging issue, an upstream llama.cpp CUDA issue, or a driver/runtime issue?
CUDA errororGGML_ABORTlines.nvidia-smioutput.llama-cli --list-devicesor any minimal upstream command that loads the CUDA backend.Until we have that, the expected workaround is to avoid explicit CUDA probing on this hardware and use the Vulkan backend path, which was reported to enumerate correctly.