For those interested, they’ve added support for DGX Spark’s unified memory to nvtop. It’s not available in a release yet, but for those interested, I built it and attached the binaries, simply extract them to a directory on your path and make sure you have no other copies of nvtop installed.
Alternatively you can just build the latest code yourself. I had to install the following dependencies to get it built:
Also, for some reason it kept wanting to add in AMD and every other GPU support even with me passing the command line flags to exclude them, so I ended up editing the CMakeLists.txt file to turn off anything that’s not NVIDIA related. Other than that it was a fairly straightforward build.
It is a little weird in that it only shows GPU memory, by that I mean, anything allocated by the CPU is excluded from the displayed figures in nvtop, so your total VRAM keeps changing based on what your CPU has already allocated, which I guess makes sense as nvtop is meant to show GPU memory only, not system memory, still, I did find that a bit strange, but it’s fine once you get used to it…
Personally speaking, I don’t see the point to install all those libraries and build with support for every GPU architecture, when we know for a fact we’ll only ever need NVIDIA support on the Spark. It just doubles the size of the binary and adds a bunch of logic for GPUs we’ll never need. I’d recommend, if people want to build it themselves, just disable all the other GPU architectures in the CMake file and make it a minimal build that just targets the DGX Spark’s architecture.
I’m in favour of people building it themselves, hence why I included basic instructions in my original post, but I don’t see sharing binaries as a bad thing, most software is distributed as binaries. As a simple example, someone is working on getting Blender 5 working on the Spark, I think that’s really awesome, but I’d much rather have a binary of that, than having to build it myself.
That looks pretty nice based on the GitHub page, have you got a screenshot of it running on the Spark? Just want to see what info it can pull from the Spark before I make a decision.
nvitop shows system (total) memory correctly, along with its usage and graph over time. But the GPU MEM graph is shown as N/A - no graph, no numbers. I’ve opened a ticket with them.
Many of these tools made assumptions about the memory split. Now that unified memory becomes more common, those assumptions are no longer always true.