Skip to content
Open
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
4c2a835
docs: sync LMSYS SGLang blog cards
github-actions[bot] May 1, 2026
ae9de2c
Merge branch 'sgl-project:main' into main
mattteochen May 18, 2026
f590edc
Merge branch 'sgl-project:main' into main
mattteochen May 19, 2026
796eb2b
Merge branch 'sgl-project:main' into main
mattteochen May 25, 2026
9c7c4ab
docs: sync LMSYS SGLang blog cards
github-actions[bot] May 29, 2026
4b72700
Merge branch 'sgl-project:main' into main
mattteochen May 29, 2026
b1b280a
docs: sync LMSYS SGLang blog cards
github-actions[bot] Jun 1, 2026
2b8675a
docs: sync LMSYS SGLang blog cards
github-actions[bot] Jun 4, 2026
f783ce4
docs: sync LMSYS SGLang blog cards
github-actions[bot] Jun 5, 2026
e99eecf
Merge branch 'sgl-project:main' into main
mattteochen Jun 6, 2026
33f8c33
Merge branch 'sgl-project:main' into main
mattteochen Jun 8, 2026
cf352d5
Merge branch 'sgl-project:main' into main
mattteochen Jun 10, 2026
bb3c8f7
Merge branch 'sgl-project:main' into main
mattteochen Jun 11, 2026
78c8bea
Merge branch 'sgl-project:main' into main
mattteochen Jun 15, 2026
bf2440c
Merge branch 'sgl-project:main' into main
mattteochen Jun 22, 2026
d85557c
Merge branch 'sgl-project:main' into main
mattteochen Jun 25, 2026
1d67ae3
Merge branch 'sgl-project:main' into main
mattteochen Jul 1, 2026
1b3828c
Merge branch 'sgl-project:main' into main
mattteochen Jul 2, 2026
77238bd
Merge branch 'sgl-project:main' into main
mattteochen Jul 6, 2026
053da63
Merge branch 'sgl-project:main' into main
mattteochen Jul 8, 2026
69fc45a
Merge branch 'sgl-project:main' into main
mattteochen Jul 8, 2026
1df97bc
Merge branch 'sgl-project:main' into main
mattteochen Jul 9, 2026
8b52910
Merge branch 'sgl-project:main' into main
mattteochen Jul 10, 2026
fbd6285
Merge branch 'sgl-project:main' into main
mattteochen Jul 13, 2026
98b811a
Merge branch 'sgl-project:main' into main
mattteochen Jul 14, 2026
70e45e3
Merge branch 'sgl-project:main' into main
mattteochen Jul 15, 2026
40cb9b4
Merge branch 'sgl-project:main' into main
mattteochen Jul 16, 2026
6c042ae
Merge branch 'sgl-project:main' into main
mattteochen Jul 17, 2026
b8a4395
Merge branch 'sgl-project:main' into main
mattteochen Jul 20, 2026
8e17e85
Merge branch 'sgl-project:main' into main
mattteochen Jul 22, 2026
55ef23c
Merge branch 'sgl-project:main' into main
mattteochen Jul 22, 2026
e6ad2cd
Merge branch 'sgl-project:main' into main
mattteochen Jul 23, 2026
31ef329
[DSV4] Compile draft hc_head during CUDA graph capture
mattteochen Jul 23, 2026
bd4e585
Merge branch 'main' into dsv4/fused-hc-head-draft
mattteochen Jul 28, 2026
dbf9e4e
Merge upstream/main into PR #32220 reconciliation
mattteochen Aug 3, 2026
584c1f5
Merge remote-tracking branch 'refs/remotes/upstream/main' into codex/…
mattteochen Aug 3, 2026
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
29 changes: 19 additions & 10 deletions python/sglang/srt/models/deepseek_v4_nextn.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from typing import Iterable, Optional, Tuple

import torch
import torch.nn.functional as F
from torch import nn
from transformers import PretrainedConfig

Expand Down Expand Up @@ -37,12 +36,19 @@
)
from sglang.srt.model_executor.forward_batch_info import ForwardBatch
from sglang.srt.model_executor.forward_context import get_attn_backend
from sglang.srt.models.deepseek_v4 import DeepseekV4DecoderLayer, DeepseekV4ForCausalLM
from sglang.srt.model_executor.runner import compile_in_capture_mode
from sglang.srt.models.deepseek_v4 import (
DeepseekV4DecoderLayer,
DeepseekV4ForCausalLM,
hc_head_torch,
)
from sglang.srt.runtime_context import get_parallel
from sglang.srt.utils import add_prefix
from sglang.srt.utils import add_prefix, is_cuda

logger = logging.getLogger(__name__)

_is_cuda = is_cuda()

COMPRESS_RATIO_NEXTN_LAYER = 0


Expand Down Expand Up @@ -122,13 +128,16 @@ def hc_head(
hc_scale: torch.Tensor,
hc_base: torch.Tensor,
):
shape, dtype = x.size(), x.dtype
x = x.flatten(1).float()
rsqrt = torch.rsqrt(x.square().mean(-1, keepdim=True) + self.rms_norm_eps)
mixes = F.linear(x, hc_fn) * rsqrt
pre = torch.sigmoid(mixes * hc_scale + hc_base) + self.hc_eps
y = torch.sum(pre.unsqueeze(-1) * x.view(shape), dim=1)
return y.to(dtype)
kwargs = {
"norm_eps": self.rms_norm_eps,
"hc_eps": self.hc_eps,
}

if x.shape[0] == 0 or not _is_cuda:
return hc_head_torch(x, hc_fn, hc_scale, hc_base, **kwargs)

hc_head_impl = compile_in_capture_mode(hc_head_torch)
return hc_head_impl(x, hc_fn, hc_scale, hc_base, **kwargs)

def forward(
self,
Expand Down
Loading