ByteTrack на GPU: ускорение мульти-камерного трекинга в 6 раз и три антипаттерна PyTorch
Автор перенёс алгоритм мульти-камерного трекинга ByteTrack на GPU, объединив математику всех камер в общие батчи. Вместо того чтобы запускать отдельный трекер для каждой камеры, все вычисления выполняются одним вызовом — это ключевой фактор ускорения.
На 16 видеопотоках время обработки кадра снизилось с 104 до 17 мс — прирост в 6 раз на RTX 4090. Первая «наивная» GPU-версия давала лишь 1,2× из-за трёх антипаттернов: цикличные вызовы GPU, заливка кадров с пропускной способностью 1,6 ГБ/с вместо 25 ГБ/с, и неявное использование FP16, добавлявшее 300 мс на кадре.
Все результаты воспроизводимы: в статье есть сравнение с NVIDIA DeepStream и ссылка на открытый код. Материал будет полезен всем, кто оптимизирует компьютерное зрение на PyTorch и хочет избежать типовых ошибок при работе с GPU.