Benchmarks & Comparisons6 min read

Ripple-65B on One H200: 43 Tokens per Second for One User, 1,197 at 64

Ricursive's Ripple-65B Preview, the open coding model that reports scores above 500B to 975B mixture-of-experts models, runs on a single H200. We served it with vLLM in FP8 on a rented H200 NVL and measured it from 1 to 128 concurrent requests, at 16k and 60k of context, and what it costs per million tokens. Plus the two things that stop it from starting today.

43 tok/s
one request, a 65B dense model on one H200
1,197 tok/s
in total at 64 concurrent requests
62.6 GiB
of weights in FP8, with 486k tokens of KV cache left
$0.81
per million output tokens at 64, at $3.50/h
Ripple-65B on one H200, 43 tokens per second for one user and 1,197 in total at 64, over an AI-generated photo of a water drop making ripples on a black pool

Ripple-65B Preview came out on 4 November from Ricursive: a 65B dense model for agentic coding, under Apache 2.0. Its card puts it at 80.5 on Terminal-Bench 2.1 and 76.5 on SWE-bench Verified, next to mixture-of-experts models of 500B to 975B. Those are Ricursive's own numbers; nobody outside has checked them yet, and we did not either.

What we did check is the other half of the pitch: a model in that league that fits on one GPU. We served it with vLLM on a rented H200 NVL and measured it.

What we measured

On one H200 NVL (141 GB) rented on ParalonCloud at $3.50 an hour, vLLM nightly, weights in FP8, requests of 1,024 tokens in and 512 out:

Concurrent requestsOutput tok/s, in totalTime to first token (median)Per user, ms a token
1430.20 s23.2
83070.25 s24.4
166190.27 s25.4
32662 to 7093.3 to 4.3 s39
641,1970.89 s40.8
1281,1275.5 s102.5
Long prompts, one requestTime to first tokenThen
16,000 tokens3.8 s (about 4,200 tokens/s of prefill)23.4 ms a token
60,000 tokens12.2 s (about 4,900 tokens/s)24.1 ms a token
Memory
Weights, FP862.6 GiB
KV cache left61 GiB, 486,626 tokens
Requests of the full 65,536 tokens at onceabout 7

What that means:

  • One user gets about 43 tokens a second, steady from a short prompt to 60,000 tokens: every token reads all 65 billion parameters, and a dense model pays for that every time. It reads faster than anyone types, slower than the small MoE models people are used to.
  • The card fills up at about 64 requests: 1,197 tokens a second in total, each user still at about 25 tokens a second. At 128 the total does not grow, and the wait for the first token does: half the requests waited over 5.5 seconds, the slowest 29.
  • 32 is an odd point. We ran it twice and got the same thing both times: lower total than 64 and a first token that takes 3 to 4 seconds, against 0.27 s at 16 and 0.89 s at 64. We used vLLM's default scheduler settings and did not tune them; if you serve at that load, try --max-num-batched-tokens before you size anything on our number.

What it costs

At $3.50 an hourOutput tokens an hourPer million output tokens
One request at a time153,000about $22.80
64 at a time4.3 millionabout $0.81

The rental bills by the minute, so a coding agent you run for an afternoon costs the afternoon. Per token, the model only gets cheap with many requests at once: as a shared endpoint for a team, or for agents running in parallel.

How to run it

It does not start yet with a plain pip install vllm. Two things to know:

  1. vLLM's latest release (0.33.0) does not know the model. It stops with Model architectures ['RicursiveForCausalLM'] are not supported for now. Support was merged on 5 November (vllm#65745) and is in the nightly builds only.
  2. It needs --trust-remote-code, since its configuration class lives in the model's repository.

On a rented GPU with 141 GB (an H200), in JupyterLab's terminal or over SSH:

python3 -m venv ~/vllm
~/vllm/bin/pip install -U --pre vllm --extra-index-url https://wheels.vllm.ai/nightly
~/vllm/bin/hf download ricursiveAI/Ripple-65B-Preview

~/vllm/bin/vllm serve ricursiveAI/Ripple-65B-Preview --trust-remote-code \
  --served-model-name ripple --quantization fp8 \
  --max-model-len 65536 --gpu-memory-utilization 0.92 \
  --reasoning-parser ripple
StepOn our H200
Download, 129.6 GB of BF16 weights20.5 minutes (about 105 MB/s; it depends on the machine's connection)
Start, with the weights on disk2 min 14 s: 23 s to load, 54 s to compile, the rest warm-up

Then it answers on localhost:8000/v1 like any OpenAI-compatible server. Any tool that takes an OpenAI base URL can use it, coding agents included.

Why FP8 and not the NVFP4 checkpoints. Ricursive and Red Hat publish 4-bit NVFP4 versions (44 to 57 GB). NVFP4 is built for Blackwell's FP4 hardware, which an H200 does not have, so on Hopper we loaded the BF16 weights and let vLLM quantize them to FP8 as it loads them (--quantization fp8). They take 62.6 GiB that way, which leaves 61 GiB of the card for context. BF16 itself, at 129.6 GB, would leave almost nothing.

Good to know

  • We measured speed, not quality. The scores above are Ricursive's. The model is a preview, and its card says its post-training was light.
  • 65,536 tokens was our choice, not the model's limit; Ricursive gives it up to about a million. More context per request means fewer requests at once: the cache holds 486,626 tokens in all.
  • The numbers come from random prompts. A coding agent sends long prompts that share most of their text from one turn to the next, so vLLM's prefix cache makes later turns start faster than our first-token times.
  • Everything is deleted when the rental ends, the 130 GB download too. If you will run it again, keep the rental, or count 20 minutes to download it again.

The raw results of every run, and the script: bench.sh, c1.json, c8.json, r16.json, c32.json and r32.json, c64.json, c128.json, long16000.json, long60000.json.

Want to try it? Rent an H200, billed by the minute.

Run it yourself

Rent an H200 NVL by the minute

From $3.80 an hour, billed for the minutes it runs, on a machine we benchmarked before listing it. No contract.

Keep reading

Related articles