Skip to content

v2.0.0

Latest

Choose a tag to compare

@sdcb sdcb released this 12 Oct 15:53

Sdcb.HyMT2Sharp 2.0.0 —— 从 1.0.0(4b69c25,2026-09-13)以来的变化。

⚠ 包结构变更

  • Sdcb.HyMT2Sharp.Gguf / .Kernels / .Model 三个包合并为单一的 Sdcb.HyMT2Sharp(#11)。升级时删除旧包引用,改为:

    dotnet add package Sdcb.HyMT2Sharp
  • 新增 NuGet 权重包 Sdcb.GgufWeights.Hy-MT2-1.8B-*(1.25Bit / 2Bit / Q4_K_M / Q6_K / Q8_0),可直接 new HunyuanDenseModel(Weights.Model()) 加载。

  • 包内附带 LINQPad 示例(hello-world / cli / minimal-api),打了 linqpad-samples 标签。

新功能

GPU 后端

  • IComputeBackend 接口与 BackendFactory.Create() 自动选择(Metal → Vulkan → CPU),也可用 HYMT_BACKEND 指定(#12、#13)。
  • Vulkan:纯 C# 实现的 decode + prefill(#20),支持 Q8_0(#24)、STQ1_0 / Q2_0C(#27);张量核 prefill 在 RTX 3080 Ti 上 pp512 约 2.9k → 15.8k tok/s(#25);AMD RDNA 默认调优(#29)。
  • Metal(Apple Silicon):decode + prefill 与设备端分页 KV(#12、#14),全部量化格式(#15),融合 decode 与 MMA prefill(#17、#18),fp16 流水线(#30)。

CPU

  • AVX-512 档(#5)、ARM64 NEON / SDOT 档(#1)、无 AVX2 时的 portable Vector<T> 档(BLIS 风格 prefill GEMM)。
  • 新增 Q8_0;已验证量化扩展为 Q8_0 / Q6_K / Q4_K_M / Q2_0C / STQ1_0。
  • 线程:自动校准线程数且主线程参与计算(#2),默认绑物理 P-core、裸机跳过探测(#16),Linux CPU 亲和性(#3),HYMT2SHARP_CPU_MASK(#4)。

推理

  • KvCacheConfig:none / memory / blocks(前缀块池)三种 KV 缓存策略,Server 加 --kv-cache(#6、#9)。
  • KV cache 改为 bf16 存储,prefill 分块(#7)。
  • 低分配 Sampler:temperature / top-k / top-p / min-p / 重复惩罚(#10)。
  • 可从可 seek 的 Stream 加载 GGUF(#31)。

示例

  • CLI / Server 默认使用 2Bit 权重包,--model 仍可指定 GGUF 文件。
  • 新增 WinForms 桌面翻译示例:可选引擎与 KV 缓存策略,流式输出,状态栏显示 prefill / decode 速度,支持高 DPI。
  • 英文 README、权重包表格与性能文档(docs/perf*.md)。

修复

  • fp16 次正规数触发 CPU 微码辅助,decode 提速 23~70%(#8)。
  • KV bump-arena 溢出 / 泄漏(#7)。
  • Metal:8GB 以下设备 prefill OOM(#23)。
  • Vulkan:特性探测(#22);Dispose 不归还显存,每次重新加载泄漏约 4.3 GB。
  • 流式输出:多字节字符跨 token 时输出 �,Server SSE 会重发整段文本。

完整变更:4b69c25...v2.0.0