Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 7 additions & 35 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,35 +1,7 @@
/.venv
/build
dist
vllm/*.so
vllm/vllm-rs

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

.mypy_cache

# Distribution / packaging
.Python
/build/
cmake-build-*/
CMakeUserPresets.json
develop-eggs/
/dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
rust/target/
__pycache__
*.pyc
docker/
notebooks/
*.md
receipts/
**/receipts/
46 changes: 46 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,52 @@ For events, please visit [vllm.ai/events](https://vllm.ai/events) to join us.

---

## PixelML SM80 fork

This fork carries NVIDIA Ampere (compute capability 8.0) fallback kernels
for model families whose upstream vLLM support targets Hopper or newer.
It exists for the PixelML `club-170hx` hardware group (4x NVIDIA CMP 170HX,
GA100 silicon, 64 GiB HBM2e per card, no FP4/FP8 tensor cores, no NVLink).
Full provenance, licenses, and per-branch status are in
[`docs/SM80.md`](docs/SM80.md).

### Supported models

| Model | Branch | Status | Notes |
| --- | --- | --- | --- |
| DeepSeek-V4-Flash (text) | `sm80` | Serving, published | `ghcr.io/pixelml/club-170hx:vllm-deepseek-v4-sm80-20260902`; see `club-170hx` `docs/MODEL-STATUS.md` |
| DeepSeek-V4-Flash-Vision-Exp | `sm80` | Serving, published; two known limits below | Reverse-ported vision path (Path 3), consolidated onto this branch; see `docs/SM80.md` and `PixelML/DeepSeek-V4-Flash-Vision-Exp-CMP-170HX` `docs/VISION-PORT.md` |
| GLM-5.3-Flash | `glm53-sm80` | In progress (repo-only Phase A as of 2026-09-03) | See issue [#103](https://github.com/seanphan/pixelml/issues/103) for the port plan and inventory |
| Qwen3.8-27B | stock vLLM (no fork changes needed) | Serving, published | No SM80 fallback required; see `club-170hx` `docs/MODEL-STATUS.md` |

### Known limits (DeepSeek-V4-Flash-Vision-Exp)

- **`c>=4` crash**: an EngineCore crash at concurrency 4 and above.
Root-caused and fixed on `sm80`; not yet re-verified on a GPU boot.
See [seanphan/pixelml#79](https://github.com/seanphan/pixelml/issues/79).
- **131k-token crash**: prefill past 65,000 tokens crashes the engine.
Root-caused and fixed on `sm80`; not yet re-verified on a GPU boot.
See [seanphan/pixelml#79](https://github.com/seanphan/pixelml/issues/79).

### Build instructions

```bash
git checkout sm80 # or glm53-sm80 once that branch has a bootable model
TORCH_CUDA_ARCH_LIST=8.0 docker build -f docker/Dockerfile.sm80 -t <tag> .
```

A from-source build takes about 60 minutes on the `club-170hx` build host.
See `club-170hx` `docs/DOCKER-IMAGE.md` for the exact published image
digests and launch commands.

### Links

- Platform manual and benchmarks: [`PixelML/club-170hx`](https://github.com/PixelML/club-170hx)
- DeepSeek-V4 vision port evidence: [`PixelML/DeepSeek-V4-Flash-Vision-Exp-CMP-170HX`](https://github.com/PixelML/DeepSeek-V4-Flash-Vision-Exp-CMP-170HX)
- GLM-5.3-Flash tracking issue: [seanphan/pixelml#103](https://github.com/seanphan/pixelml/issues/103)

---

## About

vLLM is a fast and easy-to-use library for LLM inference and serving.
Expand Down
4 changes: 3 additions & 1 deletion csrc/libtorch_stable/moe/moe_ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ void topk_softplus_sqrt(
const std::optional<torch::stable::Tensor>& correction_bias,
const std::optional<torch::stable::Tensor>& input_ids,
const std::optional<torch::stable::Tensor>& tid2eid,
const std::optional<torch::stable::Tensor>& is_padding);
const std::optional<torch::stable::Tensor>& is_padding,
const std::optional<torch::stable::Tensor>& bias_vl,
int64_t image_sentinel_lo);

void moe_sum(torch::stable::Tensor& input, torch::stable::Tensor& output,
std::optional<torch::stable::Tensor> topk_ids,
Expand Down
Loading