Summary
After the GPU has been in continuous use for several days, new CUDA contexts can no longer be created, while an already-running process continues to work normally. Restarting that process makes the problem visible: it falls back to CPU and keeps serving, roughly 5× slower, without any hard failure.
A reboot always clears it. Observed three times in two weeks.
Environment
| System | DGX Spark, GB10 |
| BIOS | 5.36_0ACUM027 (06/12/2026) |
| Driver | 580.173.02 |
| CUDA | 13.0 |
| Kernel | 7.0.0-1016-nvidia |
| Workload | llama.cpp llama-server (build 10547), 27B model at Q4_K_M, -ngl 99, running as a systemd user service |
Disclosure: this machine has a partially-completed 24.04 → 26.04 release upgrade. Several hundred packages are at 26.04 versions, including the kernel, while /etc/os-release still reports 24.04. Apt sources have been restored to noble and the package database is consistent. I can’t rule this out as a factor, but the GPU stack itself is functioning normally between incidents, at expected throughput.
Symptoms, in the order they appear
1. badf5600 register-read errors accumulate in dmesg
NVRM: gpuHandleSanityCheckRegReadError_GH100: Possible bad register read:
addr: 0x613078, regvalue: 0xbadf5600, error code: Unknown SYS_PRI_ERROR_CODE
Over 1,500 of these were present while inference was still running at full speed, so on their own they are not conclusive — but they precede the failure.
2. Any new CUDA process fails, while the running one is fine
Even --help on a second binary fails:
$ llama-server --help
ggml_cuda_init: failed to initialize CUDA: no CUDA-capable device is detected
Meanwhile the already-running llama-server continues serving at ~21 tokens/s with all layers on the GPU.
3. nvidia-smi reports the GPU as healthy throughout
$ nvidia-smi --query-gpu=name,driver_version --format=csv
name, driver_version
NVIDIA GB10, 580.173.02
$ nvidia-smi --query-gpu=compute_mode --format=csv
compute_mode
Default
Compute mode is Default, so this is not exclusive-process contention.
4. Restarting the service silently degrades to CPU
ggml_cuda_init: failed to initialize CUDA: no CUDA-capable device is detected
warning: no usable GPU found, --gpu-layers option will be ignored
Generation drops from ~21 t/s to ~4.6 t/s and prompt processing from ~1.2 ms to ~110 ms per token. The service reports healthy and answers requests, so liveness checks pass — this is what makes it easy to miss.
On the most recent occurrence systemd also logged:
llama-server.service: Failed with result 'timeout'.
The previous instance exceeded its stop timeout and was killed, which may be relevant to why the GPU would not hand out a new context.
5. A reboot restores normal operation immediately
After reboot, CUDA initialises, all layers offload, and throughput returns to ~21 t/s. No other intervention has ever been needed.
Reproduction
Not deterministic, but the pattern is consistent:
- Run a CUDA workload continuously for several days
- Watch
sudo dmesg | grep -c badf5600climb - Attempt to start any second CUDA process — fails while the first is healthy
- Restart the first process — it comes back on CPU
- Reboot — everything normal again
Questions
- Is
badf5600onSYS_PRI_ERROR_CODEa known indicator of this state, and is there a threshold at which it becomes meaningful? - Is there a way to recover the ability to create contexts without a reboot — a driver module reload, or resetting the GPU, given GB10’s unified memory architecture?
- Is there a supported way to detect this state programmatically?
nvidia-smireports healthy, so the only reliable signal I have found is attempting to create a context and watching it fail. - Could the systemd stop-timeout kill be leaving the context in a state the driver won’t reclaim, and if so is there a recommended shutdown grace period for long-running CUDA processes?
Happy to provide nvidia-bug-report.sh output, full dmesg, or to run any diagnostic before the next reboot.