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,方便整合與測試。