Nvidia DGX Spark Hands-On: Setup, vLLM Serving, and Mac Studio Comparison

VideoHeavy Metal CloudTutorial

Heavy Metal Cloud reviews the Gigabyte and ASUS Nvidia DGX Spark desktop units powered by the Grace Blackwell architecture. The video provides a step-by-step guide for local LLM serving using Docker, vLLM, and SparkRun, as well as media generation in ComfyUI, comparing real-world performance against a Mac Studio.
Playing loads YouTube (youtube-nocookie.com).

Key points

  1. Hardware details: Both models include 128 GB of unified memory, a 256-bit memory bus, and 10GbE networking. ASUS uses bottom-to-back airflow, while Gigabyte features straight front-to-back cooling but lacks any power LED.
  2. Power and thermals: Power consumption measures around 25 W at idle, 50 W during LLM inference peaks, and up to 180 W under image/video rendering loads, with temperatures around 110 °F (43 °C).
  3. Memory lockup mitigation: Exhausting unified memory causes system hangs; setting GPU memory utilisation in vLLM to 0.5 and dialing it up incrementally resolves the issue.
  4. Serving options: Models can be deployed using the 'spark-vllm-docker' project by Eugr or through 'SparkRun' from the Spark Arena community using predefined recipes.
  5. Concurrent throughput: Running Qwen 3.6 35B (Prisma Quants) produced roughly 70 tokens/s for a single user, scaling up to an aggregate of 250 tokens/s across four concurrent sessions.
  6. Mac Studio comparison: The Mac M4 Max is 20–50% faster in decoding standard autoregressive models due to its wider memory bus. However, DGX Spark outperforms the Mac by roughly 3x on the compute-heavy Diffusion Gemma model and holds a decisive lead in ComfyUI rendering.

Why it matters

As teams explore on-premise hardware for running open weights locally, DGX Spark offers a direct compact rival to Apple Silicon. While requiring higher technical expertise and deliberate memory configuration, it demonstrates clear advantages for multi-tenant batch serving, diffusion-based text models, and local visual media pipelines.

Analysis

The benchmark underscores that bandwidth-bound autoregressive decoding remains an advantage for Apple Silicon's wider memory interface in single-user setups. Conversely, the Grace Blackwell architecture shines when tasks depend on compute density—such as image/video generation in ComfyUI, concurrent user request batching, or non-autoregressive models like Diffusion Gemma. Community projects like Eugr and SparkRun are critical in making this platform reliable and turnkey.

Transcript

Show the full transcript (2,072 words)
Today I’m going to talk about these things. They’re DGX Spark servers used for local AI. Specifically, the Gigabyte and ASUS variants. They both use the Grace-Blackwell GB200 chip and are essentially identical to the NVIDIA reference model. Now, I have to admit, the experience of owning these things has been a little bit of a roller coaster ride. I went from being really excited opening the box to almost returning them. But I didn’t do it. And now after using them for more than a month, I have to say I think I kind of love these little boxes. Before we get started, I want to address the elephant in the room here. This is a polarizing device and people tend to love it or hate it. And the thing is there’s a kernel of truth to some of the frustration. It’s not as turnkey as something like a Mac Studio, and it can lock up if you use too much memory. And by the way, the reason I almost returned mine is because it was locking up. It also takes a lot of technical expertise to get it up and running. And the inference speed is a little slower than a Mac Studio, although that may be changing soon. I’ll explain that in a little bit. But if you can get past the learning curve, there’s something really special going on here. So the purpose of this video is to get you up and running as quickly as possible and hopefully avoid all the hassle and frustration. Okay, let's start with the hardware, and I want to begin by focusing on the differences between these two. There really aren’t that many. First, let's look at the airflow. The ASUS has the cold air entering from the bottom and exiting out the back. The Gigabyte is straight through from front to back, and I think I kind of prefer this style. One of the weird quirks about the Gigabyte is there’s no LED light, and believe me, I looked. It’s more annoying than you might think. On startup, it’s essentially silent, and sometimes you’re just not sure if it’s running or not. Other than that, they’re essentially the same. They both have 128 gigabytes of unified memory, 10 gigabit Ethernet, and both of mine are using one terabyte NVMe drives. Also on the back, there are four USB-C connectors with one dedicated to power. Here there’s a HDMI connector and two ConnectX network adapters which can run at 200 gigabits per second. I gotta say, connecting two DGX Sparks is a huge topic and not for the faint of heart. I’ll have a separate video covering that. Finally, the star of the show is the GB200 superchip. The GB200 is actually two chips called dielets, side-by-side. On this side we have the Blackwell GPU, and on the other side is the Grace CPU. In terms of data flow, all the inputs enter from the CPU side. On the far right is the high-speed I/O which is where all the PCI lanes enter the chip. And on the top and the bottom here, we have the memory interface where the unified memory comes in. In the middle, there’s this bluish strip called the chip-to-chip or C2C interface. It’s a fast 600 gigabyte per second highway that moves data between the GPU and the CPU. Okay, a couple of important things I want to point out. The memory bus is 256 bits wide, and that’s half the width of the Mac M4 Max chip, which is the main reason why the Mac has a faster inference during the decoding phase. Another interesting thing is each PCIe device is limited to four data lanes. It’s not a big deal unless you’re planning to use the ConnectX-7 port, and again, I’ll explain that in a future video. In terms of power use, it draws about 25 watts at idle and about 50 watts during peak RAM and GPU usage during inference. When rendering images and video, it peaked at about 180 watts. Case temperatures peaked at about 110 degrees Fahrenheit, but usually run pretty cool under most circumstances. Overall, the power usage and temperature ratings are about on par with a Mac Studio, but maybe just a little bit higher. Alright, now let’s get this thing set up and start serving some models. As always, I’ll have all of my instructions in my GitHub page linked below. And for this video, I’ll assume you have a working knowledge of Ubuntu and I’ve already set up things like timezone and language settings. So at this point, you should be logged in to a terminal prompt. The first thing you’ll do is create a Docker group and add it to your user. The reason that’s important is a lot of these LLM serving engines will run inside of a Docker container. Creating this group will allow you to run Docker without the sudo command. I also installed a few things like Homebrew, UV for Python, and Rust. Some of these are optional, but they’re all nice to have. The next thing you want to do is set up a Python environment by running this command. Now that we have the initial setup out of the way, we have to choose a serving engine, and there are a lot of them. But these are the two approaches that I recommend. The first one is a community repo in Git called Eugar. And I hope I pronounce that right. For serving, it uses VLLM with a custom Docker image and some nice recipes to make things easy. Of all the serving methods I’ve tried, this is without a doubt the most turnkey. Every recipe just seems to work and it has this curated feel to it. There is one setting that’s really important though. Remember I said I was running into issues with the server locking up? You see when your model uses all the available memory, it gets into a bad state and can cause it to seize up. To fix that, you want to adjust this GPU memory utilization setting. Whenever I run into an issue, I set this to 0.5, then slowly increase it until the problems return. Then I throttle it back just a little bit. This will solve most of the issues when serving a model. The installation is pretty easy. I start by creating a folder to store everything, then I clone the repo. Next, go into the Spark VLLM Docker folder and run the build-and-copy script. This will create a Docker image that’s built for the DGX Spark with all the required libraries. Once the container is built, you’ll have two options for serving. The first option is to run the launch cluster script, and this has the VLLM serve command in line. It works, but my favorite approach is these the recipes. In the recipes directory, you’ll see a list of the available options. All you have to do is execute the run recipe script and then the name of the recipe. And by the way, if you’re running a single spark, you’ll have to use the solo argument or you’ll run into some issues. Okay, after a few minutes you should have a working model. You can test it using a curl command or an agent. Here’s an example where I’m using the Continue plugin for VS Code. Going back to the DGX Spark terminal, you can see things like token per second and some other statistics. Another great serving option is SparkRun which is related to the Spark Arena community page. I gotta say, the DGX Spark community is amazing. There are about a dozen or so keen individuals who’ve put in a lot of work to make this platform viable. And you can really tell the community’s trying to squeeze every token per second out of these little boxes. So check out the Spark Arena page and especially the leaderboard. To get SparkRun going, you can check out the project at this GitHub page or on their main site. The installation is pretty simple. Just run this UV command and walk through the setup wizard. Like I said, the community’s amazing and you can tell there’s overlap with the Eugar project and SparkRun. For example, the Eugar recipes work with the SparkRun project. So the recipes can be mixed and matched. And lately I find them running the Eugar recipes using the SparkRun runtime. Okay, to run a recipe, you can either click this button to create the command, or you can copy the recipe to a local file and run sparkrun run and then the name of the file. I think right now one of my favorite recipes is this one. It’s called Qwen 3.6 35B using the Prisma Quants. It’s pretty impressive using a single user session. I was getting roughly 70 tokens per second. But when I run four user requests at the same time, I was getting a peak of 250 tokens per second. Now, keep in mind that’s aggregate between the request. But it’s become apparent to me that running multiple requests is one area where the DGX really shines, especially when you’re using something like VLLM. Now let’s talk about performance. Compared to the Mac Studio, the inference speeds have been about 20 to 50% slower on the DGX Spark during the decoder phase. So that’s expected given the difference in the memory bus between the two devices. However, while I was working on this video, something unexpected happened. A new model dropped called Diffusion Gemma, and this model is completely flipped the script. Instead of being a memory bound during decoding, it uses a diffusion model that’s kind of sort of similar to image rendering. This uses more CPU and gives the DGX Spark an edge over the Mac hardware. I was getting almost three times the token per second count when using this model. Now I’m not sure if these models are going to end up replacing autoregressive models, but if they do, it could make the GB10 devices a major contender in inference. Another area where the DGX Spark really shines is image and video rendering. This is another instance where the performance numbers flip in favor of the DGX over the Mac. For images and video, I’m using an application called ComfyUI. Again, the installation is pretty easy. Just run this pip command, then run Comfy install. To start ComfyUI, run this Python command. Note that I’m adding a listen argument and that will allow me to access the web app remotely. Next, open up your web browser to port 8188 to bring up the app. An easy way to get started is to click templates and grab a pre-made workflow. Let’s try this one. It’s called Qwen Image 2512. You’ll notice this complaining about some missing models, and this is where things get a little tricky with the DGX Spark. You see on a Mac or PC, when you click download, it automatically places the model in the right location. But since this is a web app on the Spark, the models go into your download folder. So you’ll have to find the appropriate folder under comfy/ComfyUI and then the models folder. For example, we would place this model in the diffusion models folder. Once the models are all downloaded and put in the correct location, you can start rendering an image. To mix things up, I’ll change the text a little bit and make her bag red. Okay, the first render took roughly five minutes. But if I click the turbo option, I can render an image in 20 seconds or so. Next, let’s select a video template so we can render an image as a video clip. This is a tiny painting that my wife made, and she was going to throw it away, but I thought it looked really cool and would be nice for my studio. So let’s see what happens when we try to bring it to life with video. That is pretty wild. I also thought the time to render was pretty quick for such a compact machine. Okay, in my next video, I’m going to walk through the process of connecting two DGX Spark servers together. Until then, thanks for stopping by, and I’ll see you in the next video.

Links and tools from this entry

Summary generated by AI (Gemini 3.8 Flash, 27 September 2026). It may contain errors – the original source is authoritative.

Similar in content, found by the AI search.

  • Video

    Video:AIProgrammingHardware

    Essential Software Ecosystem and GitHub Repositories for NVIDIA DGX Spark

    This video details the primary open-source software repositories and workflows for NVIDIA's DGX Spark desktop AI supercomputer. Powered by the GB10 Grace Blackwell Superchip with 128 GB of unified memory, the hardware enables private local LLM inference, multi-agent setups, and model training without cloud reliance.

    AI & LLMs· Resource

  • Repository:eugr/spark-vllm-docker

    spark-vllm-docker: Optimised vLLM Docker Setups for DGX Spark

    spark-vllm-docker is an open-source tool providing Docker configurations and startup scripts to run vLLM on DGX Spark systems, supporting both single-node setups and multi-node clusters via Ray or PyTorch distributed mode.

    2.2kstarsShell

    AI & LLMs· Tool

  • Link:NVIDIA

    NVIDIA DGX Spark Developer Hub: Workflows for GB10 Grace Blackwell Superchip

    NVIDIA has launched the DGX Spark Developer Hub, offering playbooks and guides for running AI agent workflows on the NVIDIA GB10 Grace Blackwell Superchip. The hub features quickstarts for tools such as Open-WebUI, ComfyUI, and vLLM alongside multi-Spark networking setups.

    AI & LLMs· Resource

  • Article:Elite Test Engineering

    Serving DeepSeek V4 Flash on Dual DGX Spark Nodes

    A detailed technical setup report documents serving DeepSeek-V4-Flash (284B MoE) across two DGX Spark nodes powered by Grace Blackwell chips using Ray and vLLM. It highlights workarounds for unified memory monitoring, NCCL RDMA deadlocks, and CUDA graph issues, as well as a 45% speedup using native speculative decoding.

    AI & LLMs· Tutorial

Let's talk about your project

Locations

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Vienna
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Parts of this content were created with the assistance of AI.