Урок 13: Оптимизация графа и ядер — слияние, CUDA Graphs и TensorRT
Каждая операция GPU стоит накладных расходов на запуск, и каждая операция пишет и читает промежуточную память. Модель с сотнями мелких операций тратит большую часть времени на накладные расходы. Решение: сливать операции, захватывать и воспроизводить граф (CUDA Graphs / torch.compile) и наконец комп
Выполнение 100 отдельных операций — как покупка 100 товаров за 100 отдельных походов в магазин. Слияние — это выполнение всего за один поход. TensorRT — это заблаговременное планирование оптимального маршрута по всему магазину.
- Слияние ядер
- Объединение нескольких операций в одно ядро — меньше запусков и меньше записи/чтения промежуточной памяти.
- torch.compile / CUDA Graphs
- Захватить граф операций один раз и воспроизводить его — устраняя накладные расходы на запуск на каждом прогоне.
- TensorRT
- Компилирует обученную модель в настроенный под GPU движок: слияние, выбор ядер, точность (FP16/INT8) и захват графа.
- KV-кэш
- В LLM хранит ключи/значения прошлых токенов, чтобы они не пересчитывались для каждого нового токена.