ゼロから構築した高速LLM推論エンジン
2024-12-15
この記事では、著者がライブラリを使用せずに、C++とCUDAを使ってLLM推論エンジンをゼロから構築した過程について説明しています。この過程を通して、CUDAカーネルからモデルアーキテクチャまで、LLM推論のフルスタックを深く理解し、様々な最適化が推論速度にどのように影響するかを学びました。目標は、一般的なオープンソースモデルの重みをロードし、単一CPU+GPUサーバー上でシングルバッチ推論を実行できるプログラムを作成し、トークンスループットを反復的に改善して、llama.cppを上回ることであり、CPUとGPUの両方での最適化ステップ、マルチスレッディング、ウェイト量子化、SIMD、カーネル融合、KVキャッシュ量子化などを詳細に説明し、ボトルネックと課題を分析しています。最終的には、ローカルLLM推論において、最先端に近いパフォーマンスを実現しています。