If your production servers run Enterprise Linux and your DGX Spark runs the DGX OS it shipped with, a prototype has to change operating systems on its way to production. Rocky Linux from CIQ Pro AI (RLC Pro AI) runs on both.
Your Spark and your production servers, Arm or x86, run the same RLC Pro AI, and production is a license change from Developer to Enterprise.
CIQ builds, validates, and signs the CIQ Linux Kernel (CLK) 6.18 and the NVIDIA driver. Both ship in RLC Pro AI's repositories, so you install them as one product instead of assembling them yourself.
The next question is how RLC Pro AI does on the Spark itself. CIQ ran Spark Arena's published recipe for three Qwen3.5-0.8B tests on a DGX Spark running RLC Pro AI 9.8. Here are the results and the recipe behind them, so you can rerun every test on your own.
See what CIQ's runs measured
CIQ ran each test 6 to 12 times on a DGX Spark set up with the steps in this post. The table puts the range of those runs beside the best result another DGX Spark owner has published for the same test, as of October 1, 2026:
Against those published results, CIQ's runs would place first on two of the three tests and second on the third. Each test has five published results from other DGX Spark owners.
Gather what you need
The setup takes a stock RLC Pro AI 9.8 install to a host that runs sparkrun, the harness Spark Arena uses. Each step ends with a check that must pass before you move to the next one. You need:
- An RLC Pro AI 9.8 host with an NVIDIA GPU, such as the DGX Spark CIQ used, and a free RLC Pro AI Developer license.
- A Depot user and token. Log in to the CIQ Portal to get your token, as described in the Depot documentation.
- Sudo access on the host, and time for one reboot.
0. Check your starting point
uname -r
nvidia-smi --query-gpu=name,driver_version --format=csv,noheader
Expect CLK 6.18.43-2.1.el9_clk as the default boot entry and the pinned 580 driver.
Start from a Server, Server with GUI, or Workstation install. A Minimal Install doesn't work as a starting point. The package group that carries CLK and the driver belongs only to those three environments, so a minimal host has neither, and nothing below applies.
1. Enable the RLC AI repositories
sudo depot login -u
sudo depot enable --yes rlc-ai-9
This enables clk-6.18-el9, rlc-9-ai, rlc-9-core, and rlc-9-supplemental. Step 2's CLK module build comes from clk-6.18-el9.
--yes runs the post-enable script, which disables the stock rocky*.repo files in favor of the rlc-ai-9 copies. The RLC Pro AI repository guide covers what each repository carries.
2. Switch the NVIDIA driver to 595
sudo dnf install --allowerasing --disableplugin=protected-kmods \
nvidia-dc-driver-latest-cuda kmod-nvidia-dc-open-latest
sudo systemctl reboot
The swap installs 8 packages at 595.71.05 and removes the 10 stock *580* packages. The removed packages include nvidia-dc-fabric-manager580 and nvidia-dc-imex580, which have no replacement in the -latest set.
Use nvidia-dc-driver-latest-cuda, not plain nvidia-dc-driver-latest. The plain package is the full display driver: it resolves to 40 packages and 167 MB and pulls in Xorg and Mesa.
Keep --disableplugin=protected-kmods on hosts that have dnf-plugin-protected-kmods installed. CIQ needed it there to complete this swap. On a host without that plugin, the flag does nothing.
Check after the reboot:
$ nvidia-smi --query-gpu=driver_version,persistence_mode --format=csv,noheader
595.71.05, Enabled
3. Install Docker Engine
These are Docker's published RHEL steps:
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
Log out and back in. docker ps must then work without sudo.
4. Install the NVIDIA container toolkit
Install it from the RLC repositories:
sudo dnf install nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
This check, run as your normal user, exercises the driver, the runtime, and the toolkit together:
$ docker run --rm --gpus all rockylinux:9 nvidia-smi --query-gpu=driver_version --format=csv,noheader
595.71.05
5. Install uv and sparkrun
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install sparkrun
This installs sparkrun and uvx into ~/.local/bin, which is on the default login PATH. You need uvx because sparkrun runs its benchmark client, llama-benchy, through it.
For repeatable numbers, let sparkrun drop the page cache before each launch. This command writes a sudoers rule limited to /proc/sys/vm/drop_caches, and it prompts for your sudo password:
sparkrun setup clear-cache --hosts localhost --save-sudo
Check what you installed
These are the versions installed on the DGX Spark; the benchmark numbers came from (NVIDIA GB10, aarch64):
Docker moves independently of RLC Pro AI. At the time of writing, an x86_64 host installing Docker gets docker-ce-29.8.2. The container toolkit is 1.19.1 on x86_64 and 1.19.0 on aarch64.
CIQ signs the driver, the kmod, and the container toolkit with its key, e8258450c7780912. You don't need the EPEL or CRB repositories.
See how CIQ verified these steps
CIQ ran steps 0 through 5 under KVM with Secure Boot enforcing, from both published starting points: the RLC Pro AI 9.8 qcow2 image and a Server install from the 9.8 DVD, each with a GPU passed through. Both produced identical results. The page-cache rule in step 5 is the exception: it prompts for a sudo password and there wasn't one on either test account. The example output in this post comes from the DGX Spark.
The aarch64 image carries the same kernel and driver packages. The Spark's installed set matches what these steps produce, plus kmod-nvidia-dc-open-peermem-latest-clk6.18-base, which these steps don't install.
One difference between the starting points: the qcow2 image arrives with /etc/yum.repos.d/depot-rlc-pro-9.repo and a registered rlc-pro-9 Depot product already enabled, before you run depot login. A DVD install doesn't.
Run the Spark Arena tests
Spark Arena publishes the recipe behind each entry: the serve command, defaults, environment, mods, and container. CIQ ran the published Qwen3.5-0.8B recipe with two changes:
curl -fsS -o qwen3.5-0.8b.yaml https://spark-arena.com/api/recipes/bf736380-8483-49ce-929d-96d817a48543/raw
sed -i 's/qwen3_coder \\$/qwen3_coder/' qwen3.5-0.8b.yaml
sparkrun benchmark qwen3.5-0.8b.yaml --hosts localhost \
--image ghcr.io/spark-arena/dgx-vllm-eugr-nightly:2026091001 \
--profile @official/spark-arena-v2 --output results.yaml
- The sed line removes a stray \ at the end of the recipe's serve command. sparkrun 0.3.10 can't handle it. The fix is merged but not yet released, so drop this line once a release includes it.
- --image pins the container CIQ ran, in place of the recipe's moving :latest tag, so your run uses the same build.
The @official/spark-arena-v2 profile applies Spark Arena's run rules, so each result cell lines up with a leaderboard column. The sparkrun benchmark reference lists the other options, including --fresh to discard state from an earlier run of the same recipe.
The results file reports every cell in the profile. These are the cells behind the three tests:
tg128 is 128 tokens of generation, d16384 is a 16K-token context, and c1 or c2 is the number of concurrent requests. You should run the benchmark more than once before you compare your results with the table.
Get RLC Pro AI for your Spark
Register for a free RLC Pro AI Developer license through the CIQ Portal, follow the steps above, and compare your numbers with CIQ's. When the work is ready for production, see what RLC Pro AI includes.
NVIDIA, DGX, and DGX Spark are trademarks of NVIDIA Corporation. All other trademarks are the property of their respective owners.