TensorSharp 3.3.0.0 发布,视频生成、DFlash2 投机解码、安全加固一起来了

用 C# 写的本地大模型推理引擎,正在一步步追平甚至反超 llama.cpp。

开篇:一个"不安分"的 .NET 项目

2026 年 8 月 30 日,TensorSharp 3.3.0.0 正式发布,距离上一个版本 3.2.1.0 只有三周半,却塞进了约 40 个合并 PR [[1]](#[1])[[2]](#[2])

如果你还不认识它:TensorSharp 是开发者傅忠恺(Zhongkai Fu)打造的原生 .NET LLM 推理引擎 ------不用 Python,不用 C++,直接加载 GGUF 模型,自带控制台程序、浏览器聊天界面,以及 Ollama / OpenAI 兼容的 HTTP API,横跨 Windows、macOS、Linux,后端覆盖 GGML(Metal/CUDA/Vulkan)、直连 CUDA、Apple MLX 和纯 C# CPU 路径 [[3]](#[3])

官方 README 里的底气很直接:在相同 GGUF 文件、相同 GPU 上,这个纯 .NET 引擎已经能在多个模型的 prefill 和首 token 延迟上反超手工调优的 llama.cpp ,最高快 1.28 倍 [[3:1]](#[3:1])

而这个 3.3.0.0 版本,可以说是近期"料最足"的一次更新。

亮点一:Wan 视频生成首发,3.5 小时的任务 17 分钟跑完

本版本最大的新特性,是首次支持阿里通义万相 Wan 2.1 / 2.2 视频生成模型 (文生视频、图生视频),并且一口气跟进了至少 4 个性能优化 PR [[1:1]](#[1:1])[[4]](#[4])

技术上颇有看头:

  • 双实现路径 :除了 GGML 全图内核,还有一套不依赖 ggml 的 WanDirect 实现,跑在共享 Tensor/Ops 层上,连纯 C# 的 CPU 后端都能生成视频 [[4:1]](#[4:1])
  • 全新 CUDA 内核 :流式 online-softmax 注意力、交错 RoPE、AdaLN 调制......长序列注意力在 14k token 的 480p 配方下从 1.3 TFLOPS 干到 4.7 TFLOPS [[4:2]](#[4:2])
  • 数值级验证 :与 diffusers 参考实现对齐,最终 latent 余弦相似度跨后端 ≥ 0.999,DiT 单步 cos 0.99999+ [[4:3]](#[4:3])

最香的是这个:步数蒸馏 checkpoint 会从文件名自动识别 (Turbo、distill、Lightning、lightx2v 等关键词),自动切换到 4 步推理并关闭 guidance。同一个 1088×832×121 帧的图生视频任务,在 M5 Pro 上从 3 小时 30 分钟直接降到 17 分 30 秒 ------不需要任何额外参数,换个模型文件就行 [[3:2]](#[3:2])

其他硬指标:TI2V-5B 可以在 16 GB 显卡上 8 分钟内生成 81 帧 480p 图生视频;Wan 2.1 端到端比 stable-diffusion.cpp 快 6 倍 [[3:3]](#[3:3])

加上此前已有的 MiniMax-H3(视频 + 32 kHz 立体声音频联合生成),TensorSharp 的视频生成正式形成"双引擎"格局。

亮点二:GLM、Muse-Glimmer 两大模型家族落地

Muse-Glimmer-30B 推理支持正式上线(#137):交错滑动窗口注意力 + NoPE 全注意力层架构,支持图像输入、思考模式和 ATEM 工具调用 [[3:4]](#[3:4])[[5]](#[5])

GLM 5.x 家族 也来了(#163、#165):覆盖 GLM-5.2(744B-A40B MoE,1M 上下文)和 GLM-5.3-Flash(320B MoE),支持张量并行和 CPU MoE offload------约 92% 的 routed experts 可以放在内存里,显卡只留主干。GLM-5.2 的 NextN 草稿块随 checkpoint 自带,只需加一个 --spec 参数,解码速度立涨约 1.3 倍,草稿接受率高达 94% [[3:5]](#[3:5])[[6]](#[6])

亮点三:DFlash2------本版本技术含量最高的 PR

如果只挑一个 PR 细读,我会选 #175:DFlash2 投机解码草稿器

先看它解决了什么问题。Qwen 3.x 这类混合架构模型上,投机解码以前是负优化 ------开了反而更慢(18.3 tok/s 普通解码 vs 15.5 tok/s 投机)。根因不是草稿不准,而是 GDN 递归状态无法像 KV cache 那样截断:每次草稿被部分拒绝,就要恢复 151 MB 的状态副本,每步在 PCIe 上往返两趟 [[7]](#[7])

修复方式是把状态提交全部留在设备端:回滚耗时从 3604 ms 直接归零 [[7:1]](#[7:1])

再看 DFlash2 本身的两项新机制:

  1. 分组动态深度卷积:给每个注意力和 FFN 子层包上一层动态卷积,一次投影同时生成输入滤波器和输出滤波器;
  2. 候选选择器 :不再对块内每个位置独立 argmax,而是把相邻位置的 top-K 候选通过低秩码本成对打分,把整块 token 读作格图上的一次"游走"------仅补上这一项,就挽回了超过一半的接受率损失 [[7:2]](#[7:2])

实测效果(RTX 3080 Laptop,贪心解码):Qwen3.8-27B 事实型 prompt 从 19.5 提到 31.7 tok/s ,Muse-Glimmer-30B 从 18.7 提到 23.0 tok/s,且输出与普通解码逐字节一致 [[7:3]](#[7:3])

还有个有趣的细节:同版本的 llama.cpp 目前还加载不了 DFlash2 草稿器 (张量数量对不上)------这个特性上,TensorSharp 暂时独家 [[7:4]](#[7:4])

至此,TensorSharp 在一套 draft-verify 运行时上集齐了四种投机算法 :MTP/NextN 草稿头、独立草稿 GGUF、DSpark/DFlash 块草稿、免训练的 n-gram speculator [[3:6]](#[3:6])

亮点四:服务端安全大补课

新贡献者 @craig-b 一口气提交了约 10 项安全修复,对一个默认绑定 0.0.0.0、无内置认证的服务端来说,每一条都很实在 [[1:2]](#[1:2])

  • /api/chat 附件、图像编辑、视频生成的路径全部收敛到上传目录内,堵死路径穿越
  • 上传改为扩展名白名单 + 安全 content-type,可选存储配额;
  • API 响应和 404 页面不再泄露宿主机文件路径;
  • 模型热重载失败时保留正在服务的模型,不再直接挂掉;
  • 新增 --no-webui 纯 API 模式,方便嵌入现有网关。

如果你在用 TensorSharp.Server 对外提供服务,这个版本强烈建议升级

其他值得知道的改进

  • AMD 显卡用户福音 :修复小 BAR(Resizable BAR 受限)AMD GPU 上约 27 倍 的 Vulkan 减速(#141)[[1:3]](#[1:3])
  • 互操作现代化 :全部 DllImport 迁移到源生成的 LibraryImport,原生字符串改按 UTF-8 编组(#162、#144)[[1:4]](#[1:4])
  • 工程基建 :trait 化测试分道、PR CI 上标准 runner、环境门控测试如实报"跳过"(#156、#157)[[1:5]](#[1:5])
  • 发布提供 10 个预编译包:CLI / Server 各覆盖 Linux CPU/CUDA、macOS arm64、Windows CPU/CUDA。

结语与升级建议

三周半、40 个 PR、两条新模型产品线、一套投机解码体系、一轮安全加固------TensorSharp 的迭代节奏堪称凶猛。简单给个升级指南:

  • 视频生成玩家:直接上蒸馏版 Wan checkpoint,文件名触发自动 4 步推理;
  • 自建服务端:必升,安全修复集中在此版本;
  • GLM / Muse-Glimmer / Qwen 3.8 用户 :模型支持和投机解码都已就位,--spec 一键提速;
  • AMD Vulkan 用户:27 倍减速修复,没有理由不升。

项目地址:github.com/zhongkaifu/TensorSharp,发布页见 Discussion #178。


参考来源:


  1. https://github.com/zhongkaifu/TensorSharp/discussions/178 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. https://github.com/zhongkaifu/TensorSharp/releases/tag/v3.3.0.0 ↩︎

  3. https://github.com/zhongkaifu/TensorSharp ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  4. https://github.com/zhongkaifu/TensorSharp/pull/133 ↩︎ ↩︎ ↩︎ ↩︎

  5. https://github.com/zhongkaifu/TensorSharp/pull/137 ↩︎

  6. https://github.com/zhongkaifu/TensorSharp/pull/163 ↩︎

  7. https://github.com/zhongkaifu/TensorSharp/pull/175 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎