DGX Spark 智能体使用数据
摘要
一位用户分享了在 NVIDIA DGX Spark 上使用 vLLM 运行 Qwen3.6 模型的基准测试结果和配置,重点关注包含并发请求和工具调用的智能体工作负载。
我需要它做的事情:能够支持多人使用的 openclaw 类型智能体。我尝试的方法:我在网上看到了 atlas 相关的东西。我试了一下,但对我来说不奏效。我用 curl 测试了长上下文提示词,也用了 openclaw 的调用。问题:工具调用有问题,Qwen3-coder 似乎在 atlas 内部无法工作,长上下文下的 TPS 大约为 50,但在 4 并发下变成了 4x16 TPS。现在 Atlas 被排除了,实际能工作的是:QuantTrio/Qwen3.6-35B-A3B-AWQ 可以工作,但效果不理想。单流 35.6 tps,并发约 60。设置见最后一个代码片段。RedHatAI/Qwen3.6-35B-A3B-NVFP4 单流约 51 tps(30k 上下文长度,5000 token 输出),4 并发约 139 MTP,平均草稿接受率:77.8% === 每请求 === Req 1 TTFT=1.085516456s decode=95.889944190s prompt=29509 comp=5000 decode_tps=52.14 === 总计 === 耗时:96.979938735s 总完成:5000 tokens 总 TPS:51.55 === 每请求 === Req 1 TTFT=4.044399837s decode=132.580981472s prompt=29509 comp=5000 decode_tps=37.71 Req 2 TTFT=3.792262076s decode=137.592500091s prompt=29509 comp=5000 decode_tps=36.33 Req 3 TTFT=4.044153566s decode=136.210632072s prompt=29509 comp=5000 decode_tps=36.70 Req 4 TTFT=4.044049247s decode=140.292256085s prompt=29509 comp=5000 decode_tps=35.63 === 总计 === 耗时:144.340827706s 总完成:20000 tokens 总 TPS:138.56 docker run -d --gpus all -p 8000:8000 \ --name vllm-qwen \ --restart unless-stopped \ --ipc=host \ --ulimit memlock=-1 \ --ulimit stack=67108864 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ -e HF_HOME=/root/.cache/huggingface \ -e TOKENIZERS_PARALLELISM=false \ vllm/vllm-openai:cu130-nightly \ RedHatAI/Qwen3.6-35B-A3B-NVFP4 \ --served-model-name qwen3.6 \ --host 0.0.0.0 \ --port 8000 \ --quantization compressed-tensors \ --moe-backend flashinfer_cutlass \ --tensor-parallel-size 1 \ --gpu-memory-utilization 0.87 \ --max-model-len 180072 \ --max-num-seqs 16 \ --max-num-batched-tokens 16384 \ --kv-cache-dtype fp8_e4m3 \ --enable-chunked-prefill \ --enable-prefix-caching \ --speculative-config '{"method":"mtp","num_speculative_tokens":1}' \ --reasoning-parser qwen3 \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder \ --default-chat-template-kwargs '{"preserve_thinking":true,"thinking_budget":16384}' \ --override-generation-config '{"temperature":0.8,"top_p":0.90,"top_k":20,"presence_penalty":1.0,"repetition_penalty":1.0}' \ --limit-mm-per-prompt '{"image":4}' \ --trust-remote-code 我用于测试的脚本: #!/bin/bash # 4 路并发基准测试(vLLM):TTFT + 解码 + 总计 # 如果未缓存,则准备 30K token 提示词 [ -f /tmp/long30k.txt ] || curl -s "https://www.gutenberg.org/cache/epub/11/pg11.txt" \ | head -c 120000 > /tmp/long30k.txt # 构建包含用法块的流式请求 jq -n --rawfile p /tmp/long30k.txt '{ model: "qwen3.6", messages: [{role:"user", content: ($p + "\n\n用2000词总结。")}], max_tokens: 5000, stream: true, stream_options: {include_usage: true} }' > /tmp/req_stream.json rm -f /tmp/timing_*.txt /tmp/stream_*.jsonl # 发起 4 个并发请求 START=$(date +%s.%N) for i in 1 2 3 4; do ( FIRST="" LAST="" while IFS= read -r line; do NOW=$(date +%s.%N) if [[ "$line" == data:* && "$line" != "data: [DONE]" ]]; then [ -z "$FIRST" ] && FIRST=$NOW LAST=$NOW echo "${line#data: }" >> /tmp/stream_$i.jsonl fi done < <(curl -sN -X POST http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d @/tmp/req_stream.json) echo "$FIRST $LAST" > /tmp/timing_$i.txt ) & done wait END=$(date +%s.%N) ELAPSED=$(echo "$END - $START" | bc) # 每请求结果 echo "=== 每请求 ===" TOTAL_COMP=0 for i in 1 2 3 4; do read FIRST LAST < /tmp/timing_$i.txt TTFT=$(echo "scale=3; $FIRST - $START" | bc) DECODE=$(echo "scale=3; $LAST - $FIRST" | bc) USAGE=$(jq -s 'map(select(.usage != null)) | last.usage // {}' /tmp/stream_$i.jsonl 2>/dev/null) PROMPT=$(echo "$USAGE" | jq -r '.prompt_tokens // 0') COMP=$(echo "$USAGE" | jq -r '.completion_tokens // 0') TPS=$(echo "scale=2; if ($DECODE > 0) $COMP / $DECODE else 0" | bc -l 2>/dev/null || echo "0") TOTAL_COMP=$((TOTAL_COMP + COMP)) printf "Req %d TTFT=%ss decode=%ss prompt=%s comp=%s decode_tps=%s\n" \ "$i" "$TTFT" "$DECODE" "$PROMPT" "$COMP" "$TPS" done # 总计 echo "" echo "=== 总计 ===" printf "耗时:%ss\n" "$ELAPSED" printf "总完成:%s tokens\n" "$TOTAL_COMP" printf "总 TPS:%s\n" "$(echo "scale=2; $TOTAL_COMP / $ELAPSED" | bc)" AWQ 设置: docker run -it --gpus all -p 8000:8000 \ -e VLLM_FLASHINFER_MOE_BACKEND=latency \ -e VLLM_USE_FLASHINFER_MOE_FP16=1 \ -e VLLM_USE_FLASHINFER_SAMPLER=0 \ -e VLLM_USE_DEEP_GEMM=0 \ -e VLLM_SLEEP_WHEN_IDLE=1 \ -e OMP_NUM_THREADS=4 \ vllm/vllm-openai:cu130-nightly \ QuantTrio/Qwen3.6-35B-A3B-AWQ \ --host 0.0.0.0 \ --port 8000 \ --tensor-parallel-size 1 \ --quantization awq_marlin \ --max-model-len 262144 \ --kv-cache-dtype fp8 \ --enable-prefix-caching \ --max-num-seqs 16 \ --max-num-batched-tokens 16384 \ --gpu-memory-utilization 0.9 \ --trust-remote-code \ --reasoning-parser qwen3 \ --enable-auto-tool-choice \ --tool-call-parser qwen3_coder \ --speculative-config '{"method": "mtp", "num_speculative_tokens": 1}' \ --default-chat-template-kwargs '{"preserve_thinking": true}' \ --limit-mm-per-prompt '{"image": 16}'
相似文章
@TeksEdge:哇!全新开源计算机使用模型在单个 DGX Spark 上于 LLM 排行榜展现强劲本地性能!这…
H 公司发布了 Holo-3.1-35B-A3B-NVFP4,一款开源计算机使用模型,在单个 DGX Spark 节点上可实现每秒高达 195 个 token 的推理速度,性能超越 Qwen3.5-397B 和 Kimi-K2.5 等更大模型。
@onusoz: 16路并行 Gemma-4-26B-A4B-NVFP4 运行,每路18输出 token/s,合计300 tok/s 一台配备128GB统一内存的DGX Spark…
@onusoz 展示了在单一 DGX Spark(128GB统一内存)上运行16个并行实例的 NVIDIA 量化版 Gemma-4-26B-A4B-NVFP4 模型,合计达到300 tok/s,展示高并发能力且未使用 flashinfer。
Deepseek V4 flash 在 DGX Spark 上的性能
一位 Reddit 用户分享了在双华硕 GX10 DGX Spark 配置上运行 DeepSeek V4 Flash 的经验,详细介绍了性能指标、配置和功耗,并提供了不同上下文长度下的吞吐量基准测试结果。
双 DGX Spark(华硕 GX10)MiniMax M2.7 实测
用户实测两台华硕 GX10(DGX Spark)运行 MiniMax-M2.7-AWQ-4bit,每块仅约 100 W,生成速度 30–40 tokens/s,彻底替代嘈杂的多 GPU 机架。
@antirez: DS4 正在 DGX Spark (GB10 / CUDA) 上运行,目前为私有分支。12 tokens/sec,此系统的内存带宽受限……
Antirez 报告了在 DGX Spark (GB10) 上对 DS4 推理进行的基准测试,指出生成速度为 12 tokens/sec,预填充性能较高,并计划在该代码库成熟后将其合并。