Выбор GPU для LLMs: сколько памяти GPU мне нужно?

Автоматический перевод

Эта статья была автоматически переведена с оригинальной английской версии.

Оцените память для весов, KV cache и рантайма, прежде чем сравнивать скорость GPU. Затем измерьте пропускную способность памяти, вычислительную производительность и соединения между GPU с предполагаемым распределением запросов. Даже если веса модели помещаются в память, её может не хватить при одновременной обработке нескольких длинных запросов.

Используйте в расчёте памяти требуемое число одновременных запросов и длины последовательностей.

Оцените потребление памяти

Модель с 7 миллиардами параметров, хранящаяся в FP16, занимает около 14 GB только под значения весов. INT4 уменьшает эти значения примерно до 3.5 GB, но коэффициенты масштабирования, неквантизированные тензоры и выделения памяти рантаймом требуют дополнительной памяти. Важен фактический объём памяти, выделенный для артефакта.

Затем оцените память KV cache с учётом архитектуры, точности кэша, длин активных последовательностей и размера батча. Наконец, учтите временные активации, буферы, накладные расходы аллокатора и резерв, определённый по измерениям.

В простом примере планирования 14 GB весов и измеренное выделение 4 GB под KV уже требуют 18 GB без учёта остальных выделений. На карте с 24 GB остаётся мало места, если накладные расходы рантайма или более длинные запросы занимают остаток. Это не означает, что у каждой модели с 7 миллиардами параметров кэш занимает 4 GB.

Пропускная способность памяти и соединения между GPU меняют сравнение

Вариант GPUЗаявленная памятьЗаявленная пропускная способность памяти
H100 SXM80 GB HBM33.35 TB/s
H200 SXM141 GB HBM3e4.8 TB/s
B200 SXM180 GB HBM3eДо 8 TB/s

Эти значения взяты из референсной архитектуры NVIDIA HGX. Они описывают конкретные варианты, а не взаимозаменяемые характеристики всех карт с одним названием семейства.

При декодировании с небольшими батчами чтение весов и состояния аттеншна может сделать пропускную способность памяти важнее пиковой производительности матричных операций. Более крупные батчи, длинные префиллы и оптимизированные ядра могут изменить ресурс, который ограничивает производительность. Если модели нужны несколько GPUs, учитывайте время коллективных коммуникаций и доступные соединения между устройствами.

Сравнивайте фактическую стоимость успешного запроса при одинаковых требованиях к качеству и латентности. Учитывайте необходимые группы GPU и неиспользуемую ёмкость; одна лишь текущая цена аренды не показывает эффективность сервинга.

Раздел о выборе GPU в LLM Engineering Guide сравнивает дополнительные устройства. Используйте планирование памяти KV cache, чтобы оценить переменный объём выделяемой памяти.