kkokosa/dotLLM
LLM inference engine written in .NET
What it solves
dotLLM 是一个以 C#/.NET 原生构建的高性能 LLM 推理引擎。它消除了对 Python 包装器或像 llama.cpp 之类外部库的依赖,让 .NET 开发者能够直接在 .NET 生态系统中高效运行基于 Transformer 的模型(如 Llama、Mistral、Phi、Qwen 与 DeepSeek)。
How it works
引擎采用分层架构,将核心张量抽象与具体的计算后端分离。所有编排、模型加载与分词均以纯 C# 实现。
- Compute Backends:支持 SIMD 优化的 CPU 推理,以及通过 CUDA Driver API 加载 PTX 核心的 CUDA GPU 加速。
- Memory Management:为了实现高性能,张量数据使用非托管内存,以避免在热路径上产生 GC 开销,并使用内存映射文件实现 GGUF 文件的近乎即时加载。
- Inference Optimizations:具备分页 KV‑cache(PagedAttention)、投机解码以加速生成,以及使用 FSM/PDA 的受限解码,保证输出结构化(如 JSON 或正则表达式)。
- Serving:提供基于 ASP.NET 构建的兼容 OpenAI 的 API 服务器,内置聊天 UI。
Who it’s for
该项目面向希望在应用程序中集成 LLM 推理且不依赖 Python 或原生共享库的 .NET 开发者,也适用于需要在 Windows、Linux 或 macOS 上运行轻量、高性能本地 LLM 的用户。
Highlights
- Pure .NET Implementation:不是包装器;原生 C# 实现的推理管线。
- Zero-GC Inference:使用非托管内存防止受管堆分配导致的性能波动。
- Advanced Decoding:支持投机解码和受限解码,保证 JSON/Schema/Regex 输出。
- Hardware Acceleration:SIMD 优化的 CPU 核心与支持 CUDA GPU 的混合卸载。
- GGUF Support:原生加载 GGUF 量化格式(FP16、Q8_0、Q4_K_M)。
- OpenAI Compatible:提供 API 服务器和 CLI,便于集成与测试。