Repository navigation
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