Интуиция LLM-инженера: память и вычисления
Объясняет, почему GPU при генерации токенов загружен на 100 %, но выдаёт лишь десятки токенов в секунду — из-за дисбаланса между скоростью арифметики и пропускной способностью памяти.
llm-inference
gpu-architecture
memory-bandwidth
arithmetic-intensity
quantization
speculative-decoding
continuous-batching
roofline-model
privacy
Эта заметка участвует в semantic memory.
AI Summary
- Короткий обзор сути: GPU тратит почти всё время на ожидание данных из HBM, а не на вычисления, потому что генерация токена даёт ~1 операцию на байт, а порог сбалансированной нагрузки ~300 операций на байт. 🔑 Ключевые факты: арифметика дешевле перемещения данных; GPU скрывает латентность памяти, а не сокращает её; порог «work per byte» = TFLOPS / TB/s; генерация — memory-bound, prefill — compute-bound. 📌 Важные детали: H100 SXM5 — 989 TFLOPS BF16 / 3.35 TB/s → 295 op/byte; H200 — 4.8 TB/s → 206 op/byte; warp = 32 потока в lockstep; уровни памяти: register file → shared memory + L1 → L2 → HBM; FlashAttention, fusion, quantization, batching — все работают с одной величиной. 💡 Вывод и значение: измерять реальную пропускную способность и TFLOPS; при memory-bound — увеличивать batch size, квантовать, фьюзить; при compute-bound — снижать точность или улучшать алгоритмы; overhead-bound — уменьшать число мелких запусков.