Show HN: Tiny-vLLM – high performance LLM inference engine in C++ and CUDA
Ce dépôt propose un moteur d'inférence LLM optimisé en C++ et CUDA accompagné d'un cours guidant pas à pas son implémentation. Le projet charge un modèle Safetensors (Llama 3.2 1B Instruct) et implémente tout le passage avant du modèle (prefill et decode) en CUDA, avec gestion du KV cache, du batching et de variantes d'attention. Le cours détaille les prérequis techniques et les concepts de bas niveau nécessaires, notamment le format Safetensors, les nombres bfloat16, la gestion mémoire CPU/GPU, la tokenisation, les embeddings, RMSNorm, RoPE, les connexions résiduelles et l'usage de cuBLAS et de kernels CUDA. Plusieurs exemples pratiques et motifs d'ingénierie sont fournis, comme les kernels d'embeddings, la réduction parallèle pour RMSNorm, RoPE, softmax, le masque causal, l'astuce de transposition pour cuBLAS, la réutilisation de buffers et des stratégies de batching statique et continu. Le texte contient des instructions d'installation et de compilation, des conseils de débogage et d'extension (avec des fonctionnalités à venir comme PagedAttention), ainsi que la licence Apache 2.0 et le nom de l'auteur.