Troubleshooting#
In case of crash/seg fault#
run without cache - or clear cache - to see if this resolves the issue
if running without cache solves the seg fault, then clear the cache
To run without cache:
qd.init(offline_cache=False, ...)
See qd.init options for what offline_cache=False actually does on CUDA (it bypasses both the Quadrants PtxCache and the NVIDIA driver compute cache).
To clear cache:
the cache is located by default on linux and mac at
~/.cache/quadrantssimply remove this entire folder:
rm -Rf ~/.cache/quadrants
If this doesn’t solve the problem, then you’ll likely need to log a github issue, providing as much information as possible, and crucially a minimum reproducible example, to reproduce the seg fault.
AMDGPU hangs on first field allocation#
Some APUs (notably Rembrandt gfx90c) advertise HIP memory-pool support while hipMallocAsync
never returns. Quadrants then hangs on the first dense field / SNode allocation after
qd.init(arch=qd.amdgpu).
On
gfx90c, HIP memory pools are disabled automatically; allocations use synchipMalloc.To force that path on any AMDGPU device (for example another target with a broken async allocator, or to A/B the pool path):
export QD_ENABLE_HIP_MEMPOOL=0
Tradeoff: with pools off, device allocations come from the preallocated arena sized by
device_memory_fraction / device_memory_GB in qd.init(...). Large batched scenes may need a
higher fraction (e.g. qd.init(..., device_memory_fraction=0.9)). Kernel speed is unchanged;
only allocation growth behavior differs.