NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B 在双RTX 3090上

Reddit r/LocalLLaMA 工具

摘要

关于在双RTX 3090上使用vLLM运行量化后的NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B模型的详细指南,支持完整的262K上下文,实现高推理速度且无需CPU卸载。

我成功让这个模型在双RTX 3090上以完整262K上下文和N=4运行,如果有人感兴趣可以试试,感谢这个量化版本:https://huggingface.co/danielrmay/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-W4A16 Nemotron-Labs-3-Puzzle-75B-A9B (W4A16) 在2× RTX 3090上 — vLLM,无CPU卸载,完整262K,N=4 硬件:2× RTX 3090 (SM 8.6),PCIe Gen4 ×8,无NVLink,启用aikitoria BAR1-P2P修补驱动。 引擎:vllm/vllm-openai:cu129-nightly dev1060 (9e57de71)。 模型:danielrmay/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-W4A16 (https://huggingface.co/danielrmay/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-W4A16) (压缩张量:INT4专家 / INT8共享+mamba / BF16注意力+潜在+路由+嵌入+lm_head,剥离MTP,41.48 GiB)。 docker run -d --name vllm-puzzle --gpus '"device=0,1"' --ipc=host --network=host --ulimit memlock=-1 --ulimit stack=67108864 -e CUDA_DEVICE_ORDER=PCI_BUS_ID -e VLLM_NO_USAGE_STATS=1 -e VLLM_USE_FLASHINFER_SAMPLER=0 -e VLLM_ATTENTION_BACKEND=TRITON_ATTN -e VLLM_SKIP_P2P_CHECK=1 -e PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:128 -v /path/to/puzzle-w4a16:/model:ro --entrypoint vllm vllm/vllm-openai:cu129-nightly-x86_64 serve /model --served-model-name puzzle-w4a16 --host 0.0.0.0 --port 8000 --trust-remote-code --tensor-parallel-size 2 --enable-expert-parallel --kv-cache-dtype int8_per_token_head --mamba-backend triton --kv-cache-memory-bytes 680000000 --gpu-memory-utilization 0.965 --max-num-seqs 4 --max-num-batched-tokens 1024 --max-model-len 262144 --compilation-config '{"cudagraph_mode":"PIECEWISE","cudagraph_capture_sizes":[1,2,4]}' --reasoning-parser nemotron_v3 --tool-call-parser qwen3_coder --enable-auto-tool-choice PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:128 — 突破性配置。回收约1.07 GiB预留但未分配的碎片(expandable_segments:True无法做到),并重新平衡两个rank。这是其他一切的前提。(也使自定义all-reduce IPC句柄正常工作,而expandable_segments不能。) PIECEWISE CUDA图 — 最大的解码杠杆(27.9 eager → 88+ tok/s)。在88层混合模型上,Eager Python分发才是真正的N=1瓶颈,而非TP all-reduce。splitting_ops保持mamba/attention为eager;仅MoE/MLP子图被捕获(约几十MiB)。完整图无法装入实际24GB — PIECEWISE可以。捕获大小必须覆盖max-num-seqs(N=4时为[1,2,4]),否则N≥3的解码会静默退化为eager。 custom-all-reduce开启(默认,通过aikitoria BAR1 P2P + GC分配器):N=1时+8% / N=4时+6%。注意它只加速TP all-reduce(8个注意力层 + 40个mamba层)— EP MoE all-to-all仍使用PyNCCL。 实测(真实3090,非模拟):N=1解码93.8 tok/s,预填约3660 tok/s(4-8K上下文中),N=4聚合255 tok/s(每流69),TTFT p50 0.61s,0次抢占/0次OOM。完整262K上下文(int8 KV池278K令牌),GPU剩余267/287 MiB。52K needle recall PASS;847×293=248171,“all but 9”=9,干净的qwen3_coder工具调用。
查看原文

相似文章

nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16 · Hugging Face

Reddit r/LocalLLaMA

NVIDIA 发布了 Nemotron-Labs-3-Puzzle-75B-A9B,这是一种从 Nemotron-3-Super 衍生而来的压缩混合 MoE 大型语言模型,实现了约 2 倍更高的服务器吞吐量和更高的并发性,同时在推理、编码和长上下文基准测试中保持强劲的准确度。