Глоссарий

TensorRT

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

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

Узнай больше

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

Ключевые особенности и оптимизации

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

  • Калибровка точности: Снижает точность модели с FP32 до более низкой, например FP16 или INT8(смешанная точность или квантование модели), с минимальными потерями в точности, что приводит к ускорению вычислений и снижению потребления памяти.
  • Слияние слоев и Tensor : Объединяет несколько слоев или операций в одно ядро(Layer Fusion), уменьшая использование пропускной способности памяти и накладные расходы на запуск ядра.
  • Автонастройка ядра: Выбирает лучшие из предварительно реализованных алгоритмов (ядер) для целевой задачи NVIDIA GPU обеспечивая оптимальную производительность для конкретного оборудования.
  • Динамическая Tensor память: Минимизирует занимаемую память за счет повторного использования памяти, выделенной для тензоров, время жизни которых не пересекается.
  • Многопотоковое выполнение: Обеспечивает параллельную обработку нескольких входных потоков.

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

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

Актуальность в искусственном интеллекте и ML

TensorRT очень актуален на этапе развертывания модели в жизненном цикле машинного обучения. Его способность значительно ускорять вывод делает его незаменимым для приложений, требующих вывода в реальном времени, например, для обнаружения объектов с помощью таких моделей, как Ultralytics YOLO, сегментация изображений и обработка естественного языка. Он является ключевым компонентом в программном стеке NVIDIA , наряду с такими инструментами, как CUDAи позволяет разработчикам использовать весь потенциал аппаратного обеспечения NVIDIA , от мощных GPU для центров обработки данных до энергоэффективных модулей NVIDIA Jetson для Edge AI. Ultralytics обеспечивает бесшовную интеграцию, позволяя пользователям экспортировать модели YOLO в формат TensorRT для оптимизированного развертывания, который часто используется с такими платформами, как Triton Inference Server.

Применение в реальном мире

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

  1. Автономные транспортные средства: В самоуправляемых автомобилях(AI in Automotive) TensorRT оптимизирует модели восприятия (например, обнаружение объектов и сегментация полосы движения), работающие на встроенных платформах NVIDIA DRIVE, обеспечивая принятие решений в реальном времени, что очень важно для безопасности. Такие модели, как RTDETR, могут быть оптимизированы с помощью TensorRT для использования в подобных системах(сравнение RTDETRv2 и YOLOv5 ).
  2. Анализ медицинских изображений: больницы и исследовательские институты используют TensorRT для ускорения вывода моделей ИИ, которые анализируют медицинские снимки (КТ, МРТ) для решения таких задач, как обнаружение опухолей или выявление аномалий(ИИ в здравоохранении), что позволяет ускорить диагностику и поддерживает клинические рабочие процессы. Часто это часть более крупных систем компьютерного зрения (CV).

TensorRT по сравнению с родственными технологиями

Хотя TensorRT фокусируется на оптимизации выводов специально для графических процессоров NVIDIA , в экосистеме существуют и другие инструменты:

  • Фреймворки для глубокого обучения (PyTorch, TensorFlow): Они используются в основном для обучения моделей, но также предлагают базовые возможности вывода. TensorRT оптимизирует модели , обученные в этих фреймворках, для развертывания.
  • ONNX Runtime: Кроссплатформенный движок вывода, поддерживающий множество аппаратных ускорителей, включая графические процессоры NVIDIA (часто использующие TensorRT в качестве провайдера выполнения), центральные процессоры и другие. Он обеспечивает более широкую аппаратную совместимость, но может не достигать такого же уровня оптимизации на оборудовании NVIDIA , как непосредственно TensorRT .
  • Intel OpenVINO: похож на TensorRT , но оптимизирован для аппаратного обеспечения Intel (CPU, iGPU, VPU). Модели Ultralytics также можно экспортировать в формат OpenVINO .

Ключевым отличием TensorRT является его глубокая интеграция с оборудованием NVIDIA и агрессивные стратегии оптимизации для GPU, которые часто дают самые высокие результаты в бенчмарках (см. MLPerf Benchmarks) на платформах NVIDIA по сравнению с более универсальными режимами выполнения. Управление моделями и развертыванием может быть упрощено с помощью таких платформ, как Ultralytics HUB.

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