Skip to content

CUDA: full test-backend-ops sweep segfaults in ggml_backend_cuda_graph_compute at ROLL on GB10 (passes with graphs disabled) #347

Description

@TheTom

Summary

The full test-backend-ops sweep on a GB10 (sm_121) segfaults inside ggml_backend_cuda_graph_compute when it reaches the first ROLL case. It is deterministic (3 of 3 runs, two different builds), it is on the base branch, and it goes away with GGML_CUDA_DISABLE_GRAPHS=1, which then passes the whole sweep. ROLL on its own passes, so the crash depends on graph state accumulated by earlier cases.

Environment

  • feature/turboquant-kv-cache at c26baf1 (also reproduced at 80be9a7)
  • NVIDIA GB10, driver 580.173.02, -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=121, Release
  • gcc + nvcc from /usr/local/cuda

Repro

./build/bin/test-backend-ops test -b CUDA0
  ...
  PAD_REFLECT_1D(type=f32,ne_a=[3000,384,4,1],pad_0=10,pad_1=9): OK
  ROLL(shift0=3,shift1=-2,shift3=1,shift4=-1):
Segmentation fault (core dumped)

9857 cases pass before the crash. Backtrace (base build, no debug symbols):

#0  ggml_backend_cuda_graph_compute(ggml_backend*, ggml_cgraph*)  libggml-cuda.so.0
#1  ggml_backend_graph_compute
#2  ggml_backend_compare_graph_backend
#3  test_case::eval(...)

Control:

./build/bin/test-backend-ops test -b CUDA0 -o ROLL
  1/1 tests passed          (three runs)

GGML_CUDA_DISABLE_GRAPHS=1 ./build/bin/test-backend-ops test -b CUDA0
  18408/18408 tests passed

Notes

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions