Repository navigation
GB10 (DGX Spark, aarch64): NVRM mem_desc.c:1359 NV_ERR_NO_MEMORY + refcnt state errors during cuTile benchmarks #112
Description
cuTile/tileiras on DGX Spark (GB10): driver NVRM errors during JIT compile & benchmark allocation
Status: DRAFT for submission. Target:
nvidia/cutile-pythonissues (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-smimemory 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-serverinstances (~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:
-
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. -
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:1359Reproduced ~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 ~60sWatch: 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
- 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+?
- Is mem_desc pool exhaustion under sustained allocation churn a known issue on GB10 (unified memory,
nvidia-smimemory fields N/A)? - Are the
refcntRequestReference_IMPLstate-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