В задачах ML-инференса с использованием GPU основное внимание обычно уделяется оптимизации вычислений самой модели. При этом на практике значимую долю времени может занимать доставка данных: подготовка и передача признаков до GPU нередко вносят существенный вклад в общую latency.
В докладе рассматривается архитектура real-time-сервиса ранжирования, где признаки поступают из разных источников: часть передается в запросе по сети, часть хранится локально, в том числе в памяти GPU. Основной фокус — на оптимизации всего пути данных: от запроса до входных тензоров модели на GPU. Будут разобраны типичные bottleneck’и (сеть, CPU→GPU передача, подготовка данных на GPU) и практические подходы к их устранению: оптимизация формата и структуры данных, минимизация копирований и сборка входных тензоров непосредственно в памяти GPU.
Подходы основаны на практическом опыте разработки высоконагруженного сервиса ранжирования на GPU. Они позволяют снизить latency и повысить утилизацию GPU.