kkokosa/dotLLM
LLM inference engine written in .NET
What it solves
dotLLM은 C#/.NET으로 네이티브하게 구축된 고성능 LLM 추론 엔진입니다. Python 래퍼나 llama.cpp와 같은 외부 라이브러리에 대한 의존성을 없애고, .NET 개발자가 Transformer 기반 모델(Llama, Mistral, Phi, Qwen, DeepSeek 등)을 .NET 생태계 내에서 높은 효율성으로 직접 실행할 수 있게 합니다.
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
Python이나 네이티브 공유 라이브러리에 의존하지 않고 애플리케이션에 LLM 추론을 통합하고자 하는 .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를 포함해 통합 및 테스트가 용이합니다.