纯 C# 追平 llama.cpp?.NET 本地推理三国杀 - 张善友

纯 C# 追平 llama.cpp?.NET 本地推理三国杀 - 张善友

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

2026年,.NET生态出现三个本地大模型推理引擎:LLamaSharp借力llama.cpp,性能稳定但依赖原生库;dotLLM纯C#实现,CPU解码追平C++,但预填充慢,零原生依赖;TensorSharp融合GGML内核,GPU吞吐领先,支持多模态和集群。三者各具优势,求稳选LLamaSharp,求纯选dotLLM,求全选TensorSharp,C#本地推理已成熟。

🔎

延伸解读

性能对比的陷阱

三家引擎的官方基准各自独立,直接对比数字容易失真。例如dotLLM在CPU解码上追平llama.cpp,但预填充仍慢2-3倍;TensorSharp在GPU吞吐上领先,但Vulkan MoE场景落后。选型时应关注具体场景,而非单一指标。

维护风险不容忽视

dotLLM和TensorSharp均为2026年新项目,核心开发者仅一人,存在维护中断风险。相比之下,LLamaSharp有三年迭代和百人社区,且与微软生态集成。选择新引擎时,需评估长期维护的可持续性。

部署自由度是关键差异

dotLLM零原生依赖,支持Native AOT单文件分发,启动约50ms,适合对部署灵活性要求高的场景。而LLamaSharp依赖llama.cpp原生库,TensorSharp集成GGML,均需考虑原生库分发问题。这一差异可能直接影响选型决策。

Q&A

2026年.NET生态中有哪些本地大模型推理引擎?

2026年.NET生态中出现了三个本地大模型推理引擎:LLamaSharp、dotLLM和TensorSharp。

LLamaSharp、dotLLM和TensorSharp在技术路线上有什么区别?

LLamaSharp通过P/Invoke调用llama.cpp原生库,依赖原生库;dotLLM是纯C#实现,零原生依赖,通过CUDA Driver API加载PTX内核;TensorSharp融合GGML内核,并添加了连续批处理、张量并行、多模态等高级功能。

dotLLM在CPU解码和预填充性能上与llama.cpp相比如何?

在CPU解码上,dotLLM在135M模型上为llama.cpp的0.74倍,1B模型为0.95倍,3B模型为1.01倍,基本持平;但在CPU预填充上,dotLLM仅为llama.cpp的0.32倍到0.57倍,差距约2-3倍。

TensorSharp在GPU吞吐上相比llama.cpp有哪些优势?

TensorSharp在GPU吞吐上相比llama.cpp有优势,例如在RTX 3080上,Gemma 4预填充为1.28倍,首token延迟为1.27倍,多轮对话最高为1.49倍。其优势来源于连续批处理和前缀共享等调度优化。

三个引擎中哪个支持Native AOT单文件分发?

dotLLM是三者中唯一支持Native AOT单文件分发的引擎,启动时间约50ms,因为它零原生依赖。

TensorSharp相比其他两个引擎有哪些独特功能?

TensorSharp在GGML内核基础上增加了vLLM式连续批处理、张量并行、跨机TCP集群、多模态(图/视/音频)、文本扩散和图像编辑等功能。

根据文章,如何选择适合的.NET本地推理引擎?

根据文章,求稳选LLamaSharp,求纯选dotLLM,求全选TensorSharp。LLamaSharp稳定成熟,dotLLM零依赖适合AOT,TensorSharp功能全面。

🏷️

标签

➡️

继续阅读