RLC Pro AI | Enterprise Linux at AI speed

Get more AI speed from your DGX Spark with RLC Pro AI

Contributors

Andrew Jorgensen, Senior Principal Linux Engineer

Your DGX Spark can run AI faster with the right Enterprise Linux. CIQ ran three Spark Arena tests on a DGX Spark with Rocky Linux from CIQ Pro AI (RLC Pro AI) 9.8, using the community’s own published recipe. RLC Pro AI placed first on two of them and ran up to 10% faster than the top published result.

The speed starts with the foundation. 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 putting them together yourself.

The same operating system then carries your work into production. Your Spark and your production servers, Arm or x86, run the same RLC Pro AI, so a prototype stays on one OS the whole way. Moving to production is a license change from Developer to Enterprise.

Below are the results, the setup and the recipe behind them, so you can rerun every test on your own Spark.

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:

TestRLC Pro AITop other published resultOther published resultsWhere RLC Pro AI's range would place
Qwen3.5-0.8B, default view (16K context, 2 requests)196–201 tokens/s186 tokens/s51st
Qwen3.5-0.8B, single user122–125 tokens/s121 tokens/s51st
Qwen3.5-0.8B, single user with 2 requests at once245–252 tokens/s253 tokens/s52nd

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:

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 <depot-user> -t <depot-token>
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):

ComponentVersionSource
Kernel6.18.43-2.1.el9_clkimage
NVIDIA drivernvidia-dc-driver-latest-cuda-595.71.05-1.el9_7_ciqrlc-9-core
NVIDIA kmodkmod-nvidia-dc-open-latest-clk6.18-base-595.71.05-3.8.el9_clkclk-6.18-el9
NVIDIA container toolkit1.19.0-1rlc-9-supplemental
Docker CE / containerd29.8.1-1.el9 / 2.3.6-1.el9download.docker.com
uv / sparkrun0.12.21 / 0.3.10astral.sh / PyPI

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:

Testllama-benchy cell
Default view (16K context, 2 requests)tg128 @ d16384 (c2)
Single usertg128 (c1)
Single user with 2 requests at oncetg128 (c2)

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.

Run AI faster on your Spark, then check our numbers (or beat them)

Your DGX Spark already has the hardware, and RLC Pro AI gets more out of it. Register for a free RLC Pro AI Developer license through the CIQ Portal, follow the steps above and run the tests yourself. If you beat our numbers, publish your result on Spark Arena and show the community what your Spark can do. When your prototype is ready for production, it’s already on the right operating system. See what RLC Pro AI includes for production.

NVIDIA, DGX, and DGX Spark are trademarks of NVIDIA Corporation. All other trademarks are the property of their respective owners.

Subscribe to our newsletter

Related posts

What a correct answer costs on a Strix Halo depends on how hard the question is

What a correct answer costs on a Strix Halo depends on how hard the question is

Sovereign inference in one pull and deploy

Sovereign inference in one pull and deploy

Your GPUs are throttled by the kernel you inherited

Your GPUs are throttled by the kernel you inherited

The forgotten layer: How Brian Dawson learned to see the whole stack

The forgotten layer: How Brian Dawson learned to see the whole stack

Built for scale. Chosen by the world’s best.

2.75M+

Rocky Linux instances

Being used world wide

90%

Of fortune 100 companies

Use CIQ supported technologies

250k

Avg. monthly downloads

Rocky Linux

9

Enterprise products

Spanning the kernel to the orchestrator

Have questions about your infrastructure?

Talk to a CIQ engineer about Rocky Linux, HPC, and AI infrastructure.

Talk to an Expert