Spaces:
Running
Running
Atlas Inference org card
Browse files- Static-SDK markdown landing page linking to atlasinference.io,
GitHub (Avarok-Cybersecurity/atlas), Docker Hub, and Discord
- Demo video (atlas-demo.mov) as hero, tracked via LFS
- Launch announcement link to X
- Tagline: Pure Rust LLM Inference.
- .gitattributes +3 -0
- README.md +156 -5
- atlas-demo.mov +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
*.mov filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
*.webm filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -1,10 +1,161 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
colorTo: yellow
|
| 6 |
-
sdk:
|
| 7 |
pinned: false
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Atlas Inference
|
| 3 |
+
emoji: π
|
| 4 |
+
colorFrom: red
|
| 5 |
colorTo: yellow
|
| 6 |
+
sdk: static
|
| 7 |
pinned: false
|
| 8 |
+
license: agpl-3.0
|
| 9 |
+
short_description: Pure Rust LLM Inference.
|
| 10 |
---
|
| 11 |
|
| 12 |
+
<p align="center">
|
| 13 |
+
<video src="https://huggingface.co/spaces/Atlas-Inference/README/resolve/main/atlas-demo.mov" controls muted playsinline width="820"></video>
|
| 14 |
+
</p>
|
| 15 |
+
|
| 16 |
+
<p align="center">
|
| 17 |
+
<a href="https://x.com/AIshaqui81766/status/2052121270506930276"><strong>π£ Read the launch announcement on X β</strong></a>
|
| 18 |
+
</p>
|
| 19 |
+
|
| 20 |
+
<p align="center">
|
| 21 |
+
<h1 align="center">Atlas Inference</h1>
|
| 22 |
+
<p align="center">
|
| 23 |
+
<strong>Pure Rust LLM Inference.</strong>
|
| 24 |
+
</p>
|
| 25 |
+
<p align="center">
|
| 26 |
+
<a href="https://atlasinference.io"><img alt="Website" src="https://img.shields.io/badge/web-atlasinference.io-orange?style=flat-square"></a>
|
| 27 |
+
<a href="https://github.com/Avarok-Cybersecurity/atlas"><img alt="GitHub" src="https://img.shields.io/badge/source-github-181717?style=flat-square&logo=github&logoColor=white"></a>
|
| 28 |
+
<a href="https://hub.docker.com/r/avarok/atlas-gb10"><img alt="Docker Hub" src="https://img.shields.io/badge/Docker%20Hub-avarok%2Fatlas--gb10-2496ED?style=flat-square&logo=docker&logoColor=white"></a>
|
| 29 |
+
<a href="https://discord.gg/DwF3brBMpw"><img alt="Discord" src="https://img.shields.io/badge/community-discord-5865F2?style=flat-square&logo=discord&logoColor=white"></a>
|
| 30 |
+
<a href="https://github.com/Avarok-Cybersecurity/atlas/blob/master/LICENSE"><img alt="License: AGPLv3" src="https://img.shields.io/badge/license-AGPLv3-yellow?style=flat-square"></a>
|
| 31 |
+
</p>
|
| 32 |
+
</p>
|
| 33 |
+
|
| 34 |
+
---
|
| 35 |
+
|
| 36 |
+
## What is Atlas?
|
| 37 |
+
|
| 38 |
+
Atlas is a from-scratch Rust + CUDA inference engine built for the next decade of LLM deployment. No Python interpreter. No PyTorch. No 20 GB Docker image. One ~2.5 GB binary that boots in under two minutes and pins the bandwidth ceiling on every supported (Hardware Γ Model Γ Quantization) target.
|
| 39 |
+
|
| 40 |
+
We started on NVIDIA's DGX Spark (GB10 / SM121) with twelve hand-tuned model targets and a plug-and-play architecture designed so AMD, Intel, and Apple Silicon can land as community contributions, and so the next round of model families slot in the same way the Qwens did this quarter.
|
| 41 |
+
|
| 42 |
+
## Why Atlas
|
| 43 |
+
|
| 44 |
+
| | Atlas | vLLM (same hardware) |
|
| 45 |
+
| ---------------------------- | -------------------- | -------------------- |
|
| 46 |
+
| Image size | **~2.5 GB** | 20+ GB |
|
| 47 |
+
| Cold start | **<2 min** | ~10 min |
|
| 48 |
+
| Runtime | **Rust + CUDA** | Python + PyTorch |
|
| 49 |
+
| Dependencies | **None** | 200+ packages |
|
| 50 |
+
| Peak Qwen3.5-35B (NVFP4) | **130 tok/s** | ~38 tok/s |
|
| 51 |
+
| Average across workloads | **111 tok/s (3.0Γ)** | 37 tok/s |
|
| 52 |
+
|
| 53 |
+
Same hardware. Same model weights. Bring your own benchmark β `scripts/sweep_all_models.sh` is in the repo and we publish the vLLM baseline command alongside ours so you can verify both. If you reproduce a faster vLLM number, file an issue. We would rather be measured than congratulated.
|
| 54 |
+
|
| 55 |
+
## Quick Start
|
| 56 |
+
|
| 57 |
+
```bash
|
| 58 |
+
docker pull avarok/atlas-gb10:latest
|
| 59 |
+
|
| 60 |
+
docker run --gpus all --ipc=host -p 8888:8888 \
|
| 61 |
+
-v ~/.cache/huggingface:/root/.cache/huggingface \
|
| 62 |
+
avarok/atlas-gb10:latest \
|
| 63 |
+
serve Sehyo/Qwen3.5-35B-A3B-NVFP4 --speculative --mtp-quantization nvfp4
|
| 64 |
+
```
|
| 65 |
+
|
| 66 |
+
Anything OpenAI- or Anthropic-compatible β `curl`, the OpenAI SDK, opencode, Claude Code, Cline, Open WebUI β points at port 8888:
|
| 67 |
+
|
| 68 |
+
```bash
|
| 69 |
+
curl http://localhost:8888/v1/chat/completions \
|
| 70 |
+
-H "Content-Type: application/json" \
|
| 71 |
+
-d '{"model":"atlas","messages":[{"role":"user","content":"Hello!"}],"max_tokens":256}'
|
| 72 |
+
```
|
| 73 |
+
|
| 74 |
+
Per-model recipes (vision, MoE, multi-node EP=2, single-GPU 122B with the tighter budget) live in [`QUICKSTART.md`](https://github.com/Avarok-Cybersecurity/atlas/blob/master/QUICKSTART.md).
|
| 75 |
+
|
| 76 |
+
## What Ships Today
|
| 77 |
+
|
| 78 |
+
Thirteen hand-tuned (Hardware Γ Model Γ Quantization) targets across Qwen3 / Qwen3.5 / Qwen3.6 / Qwen3-Next / Qwen3-VL / Gemma-4 / Mistral / MiniMax / Nemotron-H families. Every supported model runs off one multi-model binary; the right kernel set is selected at startup from the model's `config.json`.
|
| 79 |
+
|
| 80 |
+
| Model | Params / active | Quant | Architecture | Throughput |
|
| 81 |
+
| --------------------------- | ------------------- | ----------- | ----------------------------- | --------------- |
|
| 82 |
+
| Qwen3.5-35B-A3B (MTP K=2) | 35B / 3B | NVFP4 | GDN + Attention + MoE | **~130 tok/s** |
|
| 83 |
+
| Qwen3-VL-30B-A3B | 30B / 3B | NVFP4 | Vision + Attention + MoE | ~97 tok/s |
|
| 84 |
+
| Nemotron-3-Nano-30B-A3B | 30B / 3.5B | NVFP4 / FP8 | Mamba-2 + Attention + MoE | ~88 tok/s |
|
| 85 |
+
| Qwen3-Next-80B-A3B | 80B / 3B | NVFP4 | SSM + Attention + MoE | ~74β87 tok/s |
|
| 86 |
+
| Qwen3.6-35B-A3B | 35B / 3B | FP8 | GDN + Attention + MoE + ViT | ~71 tok/s |
|
| 87 |
+
| Gemma-4-26B-A4B | 26B / 4B | NVFP4 | Attention + MoE (GeGLU) | ~67 tok/s |
|
| 88 |
+
| Qwen3.5-122B-A10B (EP=2) | 122B / 10B | NVFP4 | GDN + Attention + MoE | ~46 tok/s |
|
| 89 |
+
| Mistral-Small-4-119B | 119B / 6.5B | NVFP4 | MLA + MoE | ~33 tok/s |
|
| 90 |
+
| Nemotron-3-Super-120B-A12B | 120B / 12B | NVFP4 / FP8 | Mamba-2 + Attention + MoE | ~24 tok/s |
|
| 91 |
+
| MiniMax-M2.7 (EP=2) | 229B / ~10B | NVFP4 | Attention + 256-expert MoE | ~15 tok/s |
|
| 92 |
+
| Qwen3.5-27B (dense hybrid) | 27B | NVFP4 | Hybrid SSM + Attention | ~13 tok/s |
|
| 93 |
+
| Gemma-4-31B | 31B | NVFP4 | Attention (sliding + full) | ~9β11 tok/s |
|
| 94 |
+
|
| 95 |
+
Full HuggingFace IDs, methodology, and the kernel-by-kernel comparison against PyTorch eager live in the [GitHub README](https://github.com/Avarok-Cybersecurity/atlas#readme).
|
| 96 |
+
|
| 97 |
+
## What Works Today
|
| 98 |
+
|
| 99 |
+
| Component | Status |
|
| 100 |
+
|---|---|
|
| 101 |
+
| OpenAI- and Anthropic-compatible HTTP API (streaming + non-streaming) | β
|
|
| 102 |
+
| Tool calling (Hermes, Qwen3-Coder, Mistral formats) with grammar-constrained decoding | β
|
|
| 103 |
+
| Reasoning / thinking tokens with budget cap | β
|
|
| 104 |
+
| Concurrent batched decode + per-batch CUDA graphs | β
|
|
| 105 |
+
| MTP speculative decoding (K=2, pipelined verify) | β
|
|
| 106 |
+
| Prefix caching via radix tree (RadixAttention) + SSM snapshot cache (Marconi) β 10Γ warm-cache TTFT | β
|
|
| 107 |
+
| KV cache dtypes β BF16, FP8, NVFP4, turbo3, turbo4 | β
|
|
| 108 |
+
| MoE routing up to 512 experts | β
|
|
| 109 |
+
| Vision encoder (Qwen3-VL, Qwen3.6 ViT) | β
|
|
| 110 |
+
| Multi-GPU expert parallelism (EP=2 over RoCEv2) | β
|
|
| 111 |
+
| SLO-aware scheduling, chunked prefill, active context compaction | β
|
|
| 112 |
+
| High-speed NVMe KV swap (sliding-window aware) | β
|
|
| 113 |
+
| Auto OOM pre-flight + UVM fallback on host OOM | β
|
|
| 114 |
+
|
| 115 |
+
## Plug & Play Architecture
|
| 116 |
+
|
| 117 |
+
Atlas is built around a small set of Rust traits and a kernel registry β each marked with π below is the abstraction boundary where a new integration plugs in without touching anything above or below it:
|
| 118 |
+
|
| 119 |
+
| Plug Point | What It Abstracts | To Add Support |
|
| 120 |
+
|---|---|---|
|
| 121 |
+
| π `trait ModelWeightLoader` | HuggingFace β layer translation | Implement one struct + add a match arm in `factory.rs` |
|
| 122 |
+
| π `trait TransformerLayer` | Per-layer compute (attn, SSM, MoE, FFN) | Compose existing primitives or implement a new layer type |
|
| 123 |
+
| π `trait GpuBackend` | All GPU memory and kernel ops | Swap CUDA for another accelerator backend |
|
| 124 |
+
| π `kernels/<hw>/<model>/<quant>/` | Hardware-tuned CUDA kernels | Drop a directory with `MODEL.toml` + `.cu` files; `build.rs` auto-discovers it |
|
| 125 |
+
| π `trait CommBackend` | Multi-GPU collectives | Implement for MPI, GDR, custom interconnects |
|
| 126 |
+
| π `trait StorageBackend` | NVMe KV-cache offload I/O | Implement for CXL, RDMA, other storage tiers |
|
| 127 |
+
|
| 128 |
+
A `MockGpuBackend` in `spark-runtime` lets you write and test the entire scaffold without owning the hardware β every layer above the GPU trait is hardware-agnostic.
|
| 129 |
+
|
| 130 |
+
## What the Community is Saying
|
| 131 |
+
|
| 132 |
+
> *"103 tok/s sustained on the 35B, startup in 15 seconds. Night and day compared to vLLM's 10-minute torch.compile cycle. Then tried the 122B, 43.8 tok/s with MTP, a 41% speedup over our vLLM hybrid, same hardware, 2-minute startup."*
|
| 133 |
+
> β **ronald_15496**, [Discord #general](https://discord.gg/DwF3brBMpw)
|
| 134 |
+
|
| 135 |
+
> *"Testing atlas-qwen3.5-35b for over an hour on a PNY DGX Spark in an agentic workflow. Super impressed. Spark is actually awesome with Atlas."*
|
| 136 |
+
> β **PersonWhoThinks**, [r/LocalLLaMA](https://www.reddit.com/r/LocalLLaMA/comments/1rmvxo3/)
|
| 137 |
+
|
| 138 |
+
> *"I've grown tired of vLLM and have been hoping for something. I was really surprised and impressed. I'm so glad I bought Spark because I came across this."*
|
| 139 |
+
> β **tetsuro59**, [Discord #general](https://discord.gg/DwF3brBMpw)
|
| 140 |
+
|
| 141 |
+
## Citations
|
| 142 |
+
|
| 143 |
+
We did not invent the kernels we ship. We picked the right ideas from the right papers, fused them together, and tuned them for one chip until they pinned the bandwidth ceiling. Direct intellectual debts: **FlashAttention-2** (Dao, 2024), **FlashAttention-4** (Shah et al., 2025), **FlashInfer** (Ye et al., MLSys 2025), **SageAttention 3** (Zhang et al., NeurIPS 2025), **LeanAttention** (Roy et al., 2024). Full references in the [GitHub README](https://github.com/Avarok-Cybersecurity/atlas#citations).
|
| 144 |
+
|
| 145 |
+
## License & Enterprise Edition
|
| 146 |
+
|
| 147 |
+
Atlas operates under a **dual-license** model. Both are real and intentional.
|
| 148 |
+
|
| 149 |
+
1. **Community Edition β AGPLv3.** Free, open, copyleft. Use it on your own hardware for research, hobby, side-projects, hosted demos.
|
| 150 |
+
2. **Enterprise Edition β commercial license.** Ship Atlas inside a closed-source product, run it as a SaaS backend without inheriting the AGPLv3 source-disclosure obligation, get a support relationship with the people who wrote the kernels, and prioritized model and hardware ports. Reach us via the [website](https://atlasinference.io) or Discord.
|
| 151 |
+
|
| 152 |
+
A permissive license keeps us building Atlas full-time; the AGPL community license keeps the project honest. What is in this repository is what we run.
|
| 153 |
+
|
| 154 |
+
---
|
| 155 |
+
|
| 156 |
+
<p align="center">
|
| 157 |
+
<a href="https://atlasinference.io">atlasinference.io</a> Β·
|
| 158 |
+
<a href="https://github.com/Avarok-Cybersecurity/atlas">GitHub</a> Β·
|
| 159 |
+
<a href="https://hub.docker.com/r/avarok/atlas-gb10">Docker Hub</a> Β·
|
| 160 |
+
<a href="https://discord.gg/DwF3brBMpw">Discord</a>
|
| 161 |
+
</p>
|
atlas-demo.mov
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:edcd4a7da124c271cd13e33e5656a7df32805834ed1b81ae2086248aeee08f13
|
| 3 |
+
size 20198132
|