Skip to content

GB10 (DGX Spark, aarch64): NVRM mem_desc.c:1359 NV_ERR_NO_MEMORY + refcnt state errors during cuTile benchmarks #112

Open

Description

@TAC0000

cuTile/tileiras on DGX Spark (GB10): driver NVRM errors during JIT compile & benchmark allocation

Status: DRAFT for submission. Target: nvidia/cutile-python issues (cc TileGym discussions).
Author: Lionel Thomas lionel@newmanthomas.com — review before submitting.
All timestamps 2026-10-14 PDT unless noted.

Environment

  • Hardware: NVIDIA DGX Spark — GB10 superchip (Blackwell-family iGPU, 128GB unified memory), aarch64
  • OS/kernel: DGX OS 7.5.0, Linux 7.0.0-1019-nvidia
  • Driver: 580.178.04, NVIDIA UNIX Open Kernel Module for aarch64 (Release Build, per kern.log)
    • nvidia-smi memory fields (memory.total/used/free) all report [N/A] on this platform
    • Driver-reported CUDA level: 13.0 (below TileGym's stated 13.1 floor — see Questions)
  • CUDA userspace (pip, self-contained): cuda-toolkit[nvcc,nvvm,tileiras] 13.4.2, cuda-tile 1.6.0
  • ML stack: torch 2.11.0+cu130, triton 3.6.0, Python 3.12.3
  • TileGym @ 9732779 ("ci: temporarily ignore transformers 5.3.0 CVEs")
  • Concurrent GPU residents during repro: two llama.cpp llama-server instances (~22GB unified total). Issue 2 also reproduced in a May 23 run with LLM services stopped — see History.

Summary

Two distinct NVRM kernel-level error classes appear while exercising TileGym cuTile benchmarks on GB10:

  1. State-transition errors during cuTile JIT compilation (benign so far):
    NVRM: refcntRequestReference_IMPL: Failed to enter state 1 (current state: 0, status: 0x00000056)
    Fired within seconds of a benchmark's first cuTile kernel compile (softmax @ 01:40:20, rope/rmsnorm boundary @ 01:43:18). No service impact observed.

  2. Driver memory-descriptor pool exhaustion under allocation churn (severe — known wedge precursor on this system):

    Oct 14 01:44:05 spark-a1a3 kernel: NVRM: nvCheckOkFailedNoLog: Check failed: Out of memory [NV_ERR_NO_MEMORY] (0x00000051) returned from _memdescAllocInternal(pMemDesc) @ mem_desc.c:1359
    

    Reproduced ~60s into tests/benchmark/bench_swiglu.py (the lightest allocation-heavy bench in the suite). The Python process itself did NOT OOM — torch allocations succeeded; this is the driver's internal mem_desc pool.

Reproduction

pip install cuda-tile==1.6.0 "cuda-toolkit[nvcc,nvvm,tileiras]>=13.2,<13.5"   # into a torch 2.11.0+cu130 env
git clone https://github.com/NVIDIA/TileGym && cd TileGym && pip install -e .
python tests/benchmark/bench_softmax.py   # → issue 1 (refcnt) within ~8s
python tests/benchmark/bench_swiglu.py    # → issue 2 (mem_desc OOM) within ~60s

Watch: journalctl -kf | grep NVRM (or grep -a NVRM /var/log/kern.log — kern.log is binary-mixed on this install).

Phase-1 elementwise benches otherwise PASS with correct results (softmax/rmsnorm parity with PyTorch, rope 3–4x, silu/swiglu ~1.65x) — the kernels themselves work on GB10.

Impact context (this system's history with signature #2)

NV_ERR_NO_MEMORY @ mem_desc.c:1359 on this machine is documented (internal runbook) as the precursor to an RM-API lock wedge: under repeated occurrence, ALL GPU processes hang for 20+ minutes with hung-task traces in rmapiLockAcquire / nvGpuOpsGetExternalAllocPtesOrPhysAddrs. Historical frequency escalated 12/day (Oct 2) → 229/day (Oct 7, 2026) under heavy GPU process churn (llama.cpp restart cycles), before mitigation. Oct 14 occurrences (1×) were immediately followed by an unrelated-looking service stop; no full wedge observed on this date.

Questions

  1. Is the combination "driver-reported CUDA 13.0 (580 branch) + pip CUDA 13.4 userspace (cuda-tile/tileiras)" a supported configuration on GB10/iGPU unified-memory platforms, or must the driver level match 13.1+/13.2+?
  2. Is mem_desc pool exhaustion under sustained allocation churn a known issue on GB10 (unified memory, nvidia-smi memory fields N/A)?
  3. Are the refcntRequestReference_IMPL state-transition errors during tileiras JIT compilation expected/harmless?

Attachments available on request

  • Full kern.log excerpts (Oct 12–14, all NVRM lines)
  • Benchmark outputs: ~/TileGym/results/probe_20261014_014012/, probe_20261014_014309/ (bench_softmax/rope/rmsnorm/silu_and_mul/swiglu .out files)
  • May 2026 full-suite run log (OOM failures on 16GB-alloc benches, full_benchmark_20260523_001501.log)

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions