返回资讯中心
外部精选
软件工程
#开发者实时流

SonicBoom 在 RTX 3050 上以 490 tok/s 运行 Qwen2.5-7B 编辑代码,输出与无推测解码逐位一致

来源标题:489.8 tok/s, QWen2.5 7B on RTX3050 for code edit, reproducible decoding

SonicBoom 在 RTX 3050 8GB 上使用 Qwen2.5-7B-Instruct Q4_K_M 进行代码编辑,达到 489.8 tok/s,是其自身普通解码的 12.7 倍。llama.cpp 最快推测模式为 448 tok/s,但输出与非推测模式最高半数轮次不同;SonicBoom 开启或关闭推测解码输出逐位相同。SonicBoom 用 C++ 和 CUDA 从头编写,通过 C ABI 暴露,以 GNU Guile 为一等语言,推理不涉及 Python 解释器。

Hacker News 最新nalaginrut2026/11/9 · 今天15 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

在桌面级 RTX 3050 上,原生张量运行时 SonicBoom 使用 Qwen2.5-7B 编辑代码,速度达到 490 tok/s,是其自身普通解码速度的 12.7 倍。llama.cpp 最快的投机模式达到 448 tok/s,但其输出在多达一半的回合中与其自身的非投机输出不同。SonicBoom 的输出则逐位完全相同,无论是否启用投机。

SonicBoom 完全使用 C++ 和 CUDA 从零编写,通过稳定的 C ABI 暴露接口,并将 GNU Guile 作为其一等语言。推理过程不涉及 Python 解释器、pip 或 wheel 依赖树。

Qwen2.5-7B-Instruct Q4_K_M 在 RTX 3050 8 GB 上

在编码对话任务中,投机使 SonicBoom 比其自身普通解码(176.8 tok/s)快 4.4 倍,且输出相同。

两个运行时在同一台机器上运行相同的 GGUF:RTX 3050 8 GB(sm_86)、Ryzen 5 5500、llama.cpp 43fe9c64281,使用 -ngl 99 -fa on。每个数值均为多次进程运行的中位数。Prefill 为整个 prompt 的挂钟时间。

¹ 代码编辑工作负载为十个回合,每个回合要求编辑一个 100–300 行的源文件;生成采用贪婪策略,长度与文件相同。llama.cpp 运行 llama-server -ngl 99 -fa on -np 1 --spec-type ngram-mod,这是其在此工作负载上八种投机模式中最快的一种。在同一测试中,llama.cpp 的非投机输出在 10 个回合中有 5 个在重复运行之间也存在差异。

模型文件、校验和、命令行以及长上下文层级(最高 32K)见 docs/benchmarks.md。参数量低于 2B 的模型不再进行基准测试,因为它们几乎没有实际用途。Gemma 4 E4B、DeepSeek-R1-Distill-Qwen 系列以及其他 Qwen2.5 尺寸也可运行。

相同 prompt,相同输出。这在相同版本、相同 GPU 和相同预热表下成立。

投机不改变结果。开启或关闭投机解码会得到逐位相同的 token 序列。该功能默认开启。

带种子的采样。相同的种子和配置给出相同的输出。

预热表在模型加载时于你自己的 GPU 上测量。你可以使用 sb-tune 将其导出并导入到其他地方,从而将一次运行迁移到具有相同 GPU 的另一台机器上。批处理执行尚未覆盖。

投机解码默认开启,每步最多验证 64 个草稿 token;长匹配草稿器针对代码和文档编辑。语法和 JSON 约束解码仅计算语法允许的 LM-head 行。

预热表可以导出和导入(sb-tune),并且提供规范数值模式(SONICBOOM_TUNE=canonical)。

快速开始

要求:Linux x86-64、g++-13、CMake、Ninja、CUDA 12.0+、NVIDIA GPU(已在 sm_86 上测试)、GNU Guile 3.0 及 guile-json 4.7.3,以及构建时的 SonicCross v0.0.2。完整细节见 docs/build.md。

git clone --recursive https://github.com/hardenedlinux/SonicBoom cd SonicBoom tools/mlir/build-mlir.sh # 一次性:固定版本的 LLVM/MLIR cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DSONICBOOM_USE_CUDA=ON cmake --build build mkdir -p models curl -L -o models/qwen2.5-7b-instruct-1m-q4_k_m.gguf
https://huggingface.co/ngxson/Qwen2.5-7B-Instruct-1M-Q4_K_M-GGUF/resolve/main/qwen2.5-7b-instruct-1m-q4_k_m.gguf LD_LIBRARY_PATH=build/core guile -L bindings/guile/scheme (use-modules (sonicboom inference)) (define model (load-model "models/qwen2.5-7b-instruct-1m-q4_k_m.gguf")) (define session (make-session model 4096)) (display (generate model session "The three laws of thermodynamics are" 64))

相同的调用可从 C 中使用(capi.h 中的 sb_llm_*)。

服务器是一个 GNU Artanis 应用;其依赖列在 docs/serve-openai.md 中。

LD_LIBRARY_PATH=build/core guile -L bindings/guile/scheme
bindings/guile/scheme/sonicboom/serve/app.scm
--model models/qwen2.5-7b-instruct-1m-q4_k_m.gguf --model-id qwen2.5-7b
--context-length 16384 --max-sessions 1 --port 8000 curl -s http://127.0.0.1:8000/v1/chat/completions
-H 'content-type: application/json'
-d '{"model": "qwen2.5-7b

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →