The kernel lab behind instant AI
We optimize GPU kernels for open models.
─ inference ─────
║█║ ║█║ ║█║ ║█║ ║█║ ╔═╧═╧═╧═╧═╧═╧═╧═╧═╗║█║═╣▓▓▓▓RIGHTNOW▓▓▓▓▓╠═║█║ ┌─ GLM 5.3 answer ──┐║█║═╣▓╔═════════════╗▓╠═║█║ │ ▄▄▄▄ ▄▄ ▄▄▄▄▄ ▄▄▄ │║█║═╣▓║ ▄ ▄ ▄ ▄ ▄ ▄ ║▓╠═║█║ │ ▄▄▄ ▄▄▄▄▄▄ ▄▄ ▄▄▄ │║█║═╣▓║ ▄ ▄ ▄ ▄ ▄ ▄ ║▓╠═║█║══│ ▄▄▄▄▄ ▄▄▄ ▄▄▄▄ │║█║═╣▓║ ▄ ▄ ▄ ▄ ▄ ▄ ║▓╠═║█║══│ ▄▄ ▄▄▄▄ ▄▄▄ ▄▄▄▄▄ │║█║═╣▓║ ▄ ▄ ▄ ▄ ▄ ▄ ║▓╠═║█║══│ ▄▄▄▄ ▄▄▄▄▄ ▄▄ │║█║═╣▓║ ▄ ▄ ▄ ▄ ▄ ▄ ║▓╠═║█║ │ ▄▄▄ ▄▄ █ │║█║═╣▓╚═════════════╝▓╠═║█║ └───────────────────┘║█║═╣▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓╠═║█║ ╚═╤═╤═╤═╤═╤═╤═╤═╤═╝ ║█║ ║█║ ║█║ ║█║ ║█║ GPU kernels
Models
Published prices, measured speed
Cache hit rate is the highest a single account reached. How it is measured
| Model | Input | Cached input | Output | Tokens per second | Cache hit rate | |
|---|---|---|---|---|---|---|
| Step 5 PreviewStepFun | InputUSD 0.90 | Cached inputUSD 0.09 | OutputUSD 2.43 | Tokens per second285 | Cache hit rate96.5% | → |
| InputUSD 0.15 | Cached inputUSD 0.01 | OutputUSD 0.60 | Tokens per second327 | Cache hit rate98.8% | → | |
| GLM 5.3 FlashZ.ai | InputUSD 0.11 | Cached inputUSD 0.03 | OutputUSD 0.45 | Tokens per second254.1 | Cache hit rate98.5% | → |
| InputUSD 0.10 | Cached inputUSD 0.01 | OutputUSD 0.40 | Tokens per second140 | Cache hit rate92.9% | → | |
| InputUSD 0.10 | Cached inputUSD 0.01 | OutputUSD 0.40 | Tokens per second216 | Cache hit rate98.6% | → | |
| InputUSD 0.14 | Cached inputUSD 0.03 | OutputUSD 0.58 | Tokens per second378 | Cache hit rate97.6% | → |
Serving stack
Five layers, tuned together
Each open model runs with decoding, precision and engine settings chosen for that model and its hardware.
─ ── ── ── ── ─ ─ ── ── ── ── ── ── ── ── ── ── ── ── ─
─ ── ── ── ── ─ ─ ── ── ── ── ── ── ── ── ── ── ── ── ─
─ ── ── ── ── ─ ─ ── ── ── ── ── ── ── ── ── ── ── ── ─
▓░░░▓ ▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓
░░░▓░ ░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░
░░▓░░ ░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░░▓░░
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
▌▌▌▌▌ ▌▌▌ ▌▌▌▌▌▌▌ ▌▌▌▌ ▌▌ ▌▌▌ ▌▌▌▌▌ ▌▌▌▌ ▌▌▌▌▌▌▌ ▌▌▌ ▌▌
▌▌▌▌▌ ▌▌▌ ▌▌▌▌▌▌▌ ▌▌▌▌ ▌▌ ▌▌▌ ▌▌▌▌▌ ▌▌▌▌ ▌▌▌▌▌▌▌ ▌▌▌ ▌▌
▌▌▌▌▌ ▌▌▌ ▌▌▌▌▌▌▌ ▌▌▌▌ ▌▌ ▌▌▌ ▌▌▌▌▌ ▌▌▌▌ ▌▌▌▌▌▌▌ ▌▌▌ ▌▌
▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄ ▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄
▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀ ▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄ ▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄
█████████████████████████████████████████████ █████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄
████████████████████████████████████████████ ████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀
checkpoint
precision
● ● ● ● ● ● ● candidates
● ● ● ● ●
● ● ● ● ● ● sampling
batching ↓
prompt cache ↓
attention
matrix multiply
GPU
memory
─
─
─
─
─ ─
─
─
─
─
──────────────────────────────────────────────────┐ │ │ ┌ ─┐ ───┤ ├─┤ │ │ │ └ │ ├────── ────────────────────────────────────────┤ │ │ │ ┌ │ ──┤ ├─┤ │ │ │ └ │ ├──────────────── ──────────────────────────────┤ │ │ │ ┌ │ ───┤ ├─┤ ├ │ │ └ │ ├────────────────────────── ────────────────────┤ │ │ │ ┌ │ ───┤ ├─┤ │ │ │ └ │ ├──────────────────────────────────── ──────────┤ │ │ │ ┌ │ ──┤ ├─┤ │ │ │ └ ─┘ └──────────────────────────────────────────────
request
tune
measure
ship
tokens
WEIGHTS
DECODING
SERVING
KERNELS
HARDWARE
▶
◆
◆
◆
◆
◆
▶
─ ── ── ── ── ── ── ──
─ ── ── ── ── ── ── ──
─ ── ── ── ── ── ── ──
▓░░░▓ ▓░░░▓░░░▓░░░▓░░░▓
░░░▓░ ░░░▓░░░▓░░░▓░░░▓░
░░▓░░ ░░▓░░░▓░░░▓░░░▓░░
○ ○ ○ ○
○ ○ ○ ○ ○
○ ○ ○ ○ ○
▌▌▌▌▌ ▌▌▌ ▌▌▌▌▌ ▌▌▌▌ ▌▌
▌▌▌▌▌ ▌▌▌ ▌▌▌▌▌ ▌▌▌▌ ▌▌
▌▌▌▌▌ ▌▌▌ ▌▌▌▌▌ ▌▌▌▌ ▌▌
▄▀ ▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄
▀▄ ▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
▄▀ ▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄
▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█████ █████████████████
▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
████ ████████████████
▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
→ →
checkpoint
precision
candidates
sampling
● ● ●
● ●
● ●
batching
prompt cache
attention
matrix multiply
GPU
memory
─
─
─
─
─
─
─
─
─
─
─
─
─┐┌─── ─ ────────┐ ││ │ ││ │ ││ │ ││ │ ││ │ ││ │ │├─── ─ ───────┤ ││ │ ││ │ ││ │ ││ │ ││ │ ││ │ │├─── ─ ────────┤ ││ │ ││ │ ││ │ ││ │ ││ │ ││ │ │├─── ─ ────────┤ ││ │ ││ │ ││ │ ││ │ ││ │ ││ │ │├─── ─ ───────┤ ││ │ ││ │ ││ │ ││ │ ││ │ ││ │ ─┘└─── ──────────────────┘
tune measure ship
request
tokens
WEIGHTS
DECODING
SERVING
KERNELS
HARDWARE
▶
◆
◆
◆
◆
◆
▶ - Supported GPUs
- Kernels
CUDA
- Triton
Prompt caching
Prompts with the same start cost less
Caching is automatic and best effort, with no header or parameter required.
Step 5 PreviewDeepSeek V4.1 Flash 1017GLM 5.3 Flash
Qwen3.8 27B
Ornith 1.5 35BDeepSeek V4.1 Flash
Per million tokens
96.5% cache hit rate
98.8% cache hit rate
98.5% cache hit rate
92.9% cache hit rate
98.6% cache hit rate
97.6% cache hit rate
Capacity
Pay as you go, reserved or dedicated
One day of open model traffic: only who shares the capacity changes.
│ │ shared capacity │ │ │ ▄▄ │ ▄████▄ ▄██▄ │ ▄████████████▄ │ ▄██████████████▄ │ ▄██ ████▄ your bill │ ▄▄▄█████████████████████▄ └───┬─────┬─────┬─────┬─── your traffic over a day
Pay as you go
Billed per token with no subscription, on shared capacity.
│ │ shared capacity │ ├─ ────────── held for you │ ▄▄ │ ▄████▄ ▄██▄ │ ▄████████████▄ │ ▄██████████████▄ │ ▄█████████████████▄ │ ▄▄▄█████████████████████▄ └───┬─────┬─────┬─────┬─── your traffic over a day
Reserved capacity
Capacity held for your traffic alone, arranged with sales.
┌─── ────────┐ serves you only │ │ ││ │ │ your own capacity │ │ ││ │ ││ │ │ ▄▄│ │ │ ▄████▄ ▄██▄│ │ │ ▄████████████▄│ │ │ ▄██████████████▄│ │ │ ▄█████████████████▄│ │ │ ▄▄▄█████████████████████▄│ │ └───┬─────┬─────┬─────┬───│ │ your traffic over a day └────────────────────────────┘
Dedicated deployments
A deployment that serves your company only, arranged with sales.
Quickstart
Change three values, keep your code
The API accepts Chat Completions and Messages requests.

# Set RUNINFRA_GATEWAY_KEY to your API key before running this example.curl -X POST "https:// api.runinfra.ai/ v1/ chat/completions" \ -H "Authorization: Bearer $RUNINFRA_GATEWAY_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"step-5-preview", "messages":[{"role":"user", "content":"Hello"}], "max_tokens":16384}'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@
.?%#*==-~^<>[]{}()|\/abcdefghijklmn=.?%#*==-~^<>[]{}()|\/abcdefg
.=B$$$&@%#*==~^<>[]{}()|\/ABCDEFGHI=.=B$$$&@%#*==~^<>[]{}()|\/AB
.<C***@%#==~^<>[]{}()|\/1234567890$=.<C***@%#==~^<>[]{}()|\/1234
I%###@%*==~^<>[]{}()|\/!@#$%^&*()_==I%###@%*==~^<>[]{}()|\/!@#$%
I8***%#*=~^<>[]{}()|\/qwertyuiopas=I8***%#*=~^<>[]{}()|\/qwertyu
I&@@@#*=~^<>[]{}()|\/zxcvbnmlkjhgf=I&@@@#*=~^<>[]{}()|\/zxcvbnml
I%$$$*==^<>[]{}()|\/QWERTYUIOPASDF=I%$$$*==^<>[]{}()|\/QWERTYUIO
I8&&&=~^<>[]{}()|\/ZXCVBNMLKJHGFD=I8&&&=~^<>[]{}()|\/ZXCVBNMLKJH
I%###=^<>[]{}()|\/!@#$%^&*()_=-=[]=I%###=^<>[]{}()|\/!@#$%^&*()_
I8***^<>[]{}()|\/`~1234567890-=[];=I8***^<>[]{}()|\/`~1234567890
I&@@@<>[]{}()|\/'".,<>?/abcdefghij=I&@@@<>[]{}()|\/'".,<>?/abcde
.<%$$[]{}()|\/ABCDEFGHIJKLMNOPQRST=.<%$$[]{}()|\/ABCDEFGHIJKLMNO
.=B**{}()|\/1234567890!@#$%^&*()_=.=B**{}()|\/1234567890!@#$%^&*
.?%##()|\/qwertyuiopasdfghjklzxcv=.?%##()|\/qwertyuiopasdfghjklz
&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.&@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@
.?%#*==-~^<>[]{}()|\/abcdefghijklmn=.?%#*==-~^<>[]{}()|\/abcdefg
.=B$$$&@%#*==~^<>[]{}()|\/ABCDEFGHI=.=B$$$&@%#*==~^<>[]{}()|\/AB
.<C***@%#==~^<>[]{}()|\/1234567890$=.<C***@%#==~^<>[]{}()|\/1234
I%###@%*==~^<>[]{}()|\/!@#$%^&*()_==I%###@%*==~^<>[]{}()|\/!@#$%
I8***%#*=~^<>[]{}()|\/qwertyuiopas=I8***%#*=~^<>[]{}()|\/qwertyu
I&@@@#*=~^<>[]{}()|\/zxcvbnmlkjhgf=I&@@@#*=~^<>[]{}()|\/zxcvbnml
I%$$$*==^<>[]{}()|\/QWERTYUIOPASDF=I%$$$*==^<>[]{}()|\/QWERTYUIO
I8&&&=~^<>[]{}()|\/ZXCVBNMLKJHGFD=I8&&&=~^<>[]{}()|\/ZXCVBNMLKJH
I%###=^<>[]{}()|\/!@#$%^&*()_=-=[]=I%###=^<>[]{}()|\/!@#$%^&*()_
I8***^<>[]{}()|\/`~1234567890-=[];=I8***^<>[]{}()|\/`~1234567890
I&@@@<>[]{}()|\/'".,<>?/abcdefghij=I&@@@<>[]{}()|\/'".,<>?/abcde
.<%$$[]{}()|\/ABCDEFGHIJKLMNOPQRST=.<%$$[]{}()|\/ABCDEFGHIJKLMNO