Глоссарий

TensorRT

Оптимизируй модели глубокого обучения с помощью TensorRT для более быстрых и эффективных выводов на NVIDIA GPU. Добейся производительности в реальном времени при работе с YOLO и приложениями искусственного интеллекта.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

TensorRT это комплект разработки программного обеспечения (SDK) для высокопроизводительного глубокого обучения выводам. Разработанный NVIDIA, он облегчает оптимизацию обученных нейронных сетей для развертывания в производственных средах, в частности на NVIDIA GPU. Он предназначен для того, чтобы брать обученные модели из таких фреймворков, как PyTorch или TensorFlow , и оптимизировать их для более быстрого и эффективного вывода, что очень важно для приложений, работающих в реальном времени.

Что такое TensorRT?

TensorRT По сути, это оптимизатор выводов и движок времени выполнения. Он берет обученную модель глубокого обучения и применяет различные оптимизации для повышения ее производительности на этапе вывода. Этот процесс включает в себя такие техники, как оптимизация графа, слияние слоев, квантование и автонастройка ядра. Оптимизируя модель, TensorRT уменьшает задержку и увеличивает пропускную способность, что позволяет внедрять сложные модели ИИ в приложения, требующие быстрого отклика.

TensorRT это не обучающий фреймворк; скорее, он используется после того, как модель была обучена с помощью таких фреймворков, как PyTorch или TensorFlow. Он фокусируется именно на этапе развертывания, обеспечивая максимально быстрое и эффективное выполнение моделей на целевом оборудовании, в первую очередь на графических процессорах NVIDIA . Это особенно ценно для приложений, работающих на пограничных устройствах или в дата-центрах, где скорость вычислений и использование ресурсов критически важны.

Как работает TensorRT

Процесс оптимизации в TensorRT включает в себя несколько ключевых шагов, направленных на повышение эффективности умозаключений:

  • Оптимизация графа: TensorRT анализирует граф нейронной сети и реструктурирует его, чтобы устранить лишние операции и оптимизировать поток выполнения. Это может включать в себя удаление ненужных слоев или операций, которые не вносят существенного вклада в конечный результат.
  • Слияние слоев: Несколько совместимых слоев объединяются в один, чтобы уменьшить накладные расходы и повысить эффективность вычислений. Например, последовательные слои свертки, смещения и ReLU часто могут быть объединены в одну операцию.
  • Квантование: TensorRT может снизить точность весов и активаций модели с плавающей точки (FP32 или FP16) до целочисленных форматов (INT8 или даже ниже). Это снижает требования к пропускной способности памяти и ускоряет вычисления, особенно на аппаратном обеспечении, оптимизированном для целочисленной арифметики. Хотя квантование может немного снизить точность, TensorRT стремится минимизировать это влияние, при этом значительно повышая скорость.
  • Автонастройка ядра: TensorRT выбирает наиболее эффективную реализацию (ядро) для каждой операции уровня, основываясь на целевой архитектуре GPU . Этот процесс автонастройки гарантирует, что модель в полной мере использует возможности базового оборудования.

Эти оптимизации в совокупности приводят к существенному улучшению скорости и эффективности выводов по сравнению с запуском оригинальной, неоптимизированной модели.

Применение TensorRT

TensorRT широко используется в различных приложениях, где необходимо делать выводы в реальном или близком к реальному времени. Два конкретных примера включают:

  • Автономные транспортные средства: В самоуправляемых автомобилях быстрое обнаружение объектов и понимание сцены имеют первостепенное значение для безопасности и быстроты реакции. Ultralytics YOLO Модели, оптимизированные с помощью TensorRT, могут достигать необходимой скорости вывода на платформах NVIDIA DRIVE для обработки данных датчиков в реальном времени, что позволяет быстро принимать решения для навигации и обхода препятствий.
  • Видеоаналитика в реальном времени: В таких приложениях, как охранное видеонаблюдение или мониторинг трафика, TensorRT позволяет обрабатывать видеопотоки высокого разрешения для обнаружения, отслеживания и анализа объектов с минимальной задержкой. Это позволяет немедленно оповещать и предпринимать действия на основе обнаруженных событий, например, обнаруживать вторжение в системах охранной сигнализации или анализировать транспортные потоки в "умных" городах.

TensorRT Он также полезен и в других областях, таких как анализ медицинских изображений, робототехника и облачные сервисы выводов, где низкая задержка и высокая пропускная способность являются критически важными.

TensorRT и Ultralytics YOLO

Ultralytics YOLO Модели можно экспортировать и оптимизировать с помощью TensorRT для развертывания на устройствах NVIDIA . В документации по экспорту Ultralytics YOLO содержатся подробные инструкции по конвертации YOLO -моделей в формат TensorRT . Это позволяет пользователям воспользоваться возможностями оптимизации TensorRT, чтобы значительно ускорить скорость вывода данных в своих YOLO -моделях.

Для пользователей, развертывающих YOLOv8 на NVIDIA устройствах Jetson Edge, оптимизация TensorRT часто является решающим шагом для достижения производительности в реальном времени. Кроме того, DeepStream на NVIDIA Jetson использует TensorRT для высокопроизводительных приложений видеоаналитики.

Преимущества использования TensorRT

Использование TensorRT дает несколько ключевых преимуществ для развертывания моделей глубокого обучения:

  • Увеличенная скорость вычислений: Оптимизации значительно снижают задержку в выводах и увеличивают пропускную способность, обеспечивая производительность в реальном времени.
  • Снижение латентности: Снижение задержки критически важно для приложений, требующих немедленной реакции, таких как автономные системы и аналитика в реальном времени.
  • Оптимизированное использование ресурсов: Квантование и оптимизация графов приводят к уменьшению занимаемой памяти и вычислительных требований, что делает модели более эффективными для запуска на устройствах с ограниченными ресурсами.
  • Аппаратное ускорение: TensorRT разработан для максимального использования NVIDIA GPU, обеспечивая оптимальную производительность на NVIDIA оборудовании.
  • Готовность к развертыванию: Он обеспечивает готовую к производству среду выполнения, упрощая процесс развертывания от обученной модели до приложения.

В общем, TensorRT - это жизненно важный инструмент для разработчиков, желающих развернуть высокопроизводительные приложения для вывода глубокого обучения, особенно при использовании графических процессоров NVIDIA . Оптимизируя модели для скорости и эффективности, TensorRT помогает преодолеть разрыв между исследованиями и внедрением в реальный мир, делая передовой ИИ доступным и практичным в различных отраслях.

Читать полностью