Обновить

Комментарии 4

Статья интересная, но написано МАЛО! Не написал про warp aggregation и как оно завязано на работу с памятью, register pressure, почему большой трафик флоу между VRAM и кристаллом чипа может спалить популярную GDDR6x, чем отличается shared memory от local memory и почему они вообще существуют.

А вообще со статье согласен, в LLM (да и не только на самом деле) compute выгодно менять на memory. То есть иногда стоит не брать значения из памяти и тянуть на кристалл, а заново пересчитать кусок данных из переменных в регистрах, потому что так быстрее.

Тезис про «VRAM - это холодный склад» это точное наблюдение, особенно на фоне того, что Hopper и Blackwell добавили в эту иерархию ещё один уровень (TMA + distributed shared memory), и теперь «горячих» уровней даже больше, чем кажется. Стоит упомянуть простую интуицию для тех, кто только начинает читать про оптимизацию ядер: посчитайте арифметическую интенсивность (FLOP/byte) своей операции и сравните с пределом производительности вашей карты. Если интенсивность ниже точки перегиба - вы ограничены пропускной способностью памяти, и ничего не поможет, пока вы не уменьшите обмен с видеопамятью.

Именно поэтому добавление параллельных потоков в ллм почти не просаживает скорость. Можно на той же видюхе запустить параллельно несколько рассуждений и кратно увеличить суммарную скорость по токенам. Пока в кэш влазит.

>SRAM (Shared Memory)

Static RAM

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации