TensorRT
Оптимизируйте модели глубокого обучения с помощью TensorRT для более быстрых и эффективных вычислений на NVIDIA GPU. Добейтесь производительности в реальном времени с YOLO и приложениями ИИ.
TensorRT - это высокопроизводительный оптимизатор выводов глубокого обучения и библиотека времени выполнения от NVIDIA. Он специально разработан для максимизации производительности обученных нейронных сетей (NN) на графических процессорах (GPU) NVIDIA. После обучения модели с помощью таких фреймворков, как PyTorch или TensorFlow, TensorRT берет эту модель и применяет множество оптимизаций, чтобы подготовить ее к развертыванию. В результате получается высокоэффективный механизм выполнения, который позволяет значительно сократить время ожидания вывода и повысить пропускную способность, что делает его идеальным для приложений, требующих вывода в реальном времени.
Как работает TensorRT
TensorRT достигает прироста производительности за счет многоступенчатого процесса оптимизации, который превращает стандартную обученную модель в оптимизированный механизм вывода. Этот процесс в значительной степени автоматизирован и адаптирован к конкретной архитектуре NVIDIA GPU, на которой он будет развернут. Ключевые методы оптимизации включают:
- Оптимизация графа: TensorRT анализирует обученную модель и выполняет оптимизацию графа, например, удаляет неиспользуемые слои и объединяет слои по вертикали (объединяя последовательные слои) и по горизонтали (объединяя параллельные слои). Это позволяет сократить количество операций и уменьшить объем памяти.
- Калибровка точности: Поддерживаются вычисления с более низкой точностью, такие как смешанная точность (FP16) и INT8. Преобразование весов модели из 32-битной плавающей точки (FP32) в более низкую точность с помощью квантования модели позволяет TensorRT значительно сократить использование памяти и вычислительные требования при минимальном влиянии на точность.
- Автоматическая настройка ядра: TensorRT выбирает из обширной библиотеки оптимизированных ядер GPU для каждой операции или создает собственные ядра, специально настроенные для целевого GPU. Это гарантирует, что каждое вычисление будет выполнено максимально эффективно на оборудовании.
- Оптимизация тензорной памяти: Оптимизирует использование памяти, повторно используя память для тензоров на протяжении всего выполнения модели, уменьшая занимаемую память и повышая производительность.
Модели Ultralytics YOLO могут быть легко экспортированы в формат TensorRT, что позволяет разработчикам использовать эти оптимизации в своих приложениях компьютерного зрения (CV).
Применение в реальном мире
TensorRT имеет решающее значение для развертывания высокопроизводительного ИИ в условиях дефицита времени и ресурсов.
- Автономные транспортные средства: В самоуправляемых автомобилях системы восприятия должны обрабатывать данные с камер и датчиков в режиме реального времени, чтобы обнаруживать пешеходов, другие транспортные средства и препятствия. Такие модели, как Ultralytics YOLO11, оптимизированные с помощью TensorRT, могут выполнять обнаружение объектов с чрезвычайно низкой задержкой, что очень важно для принятия решений о безопасном вождении.
- Умное производство: На заводе искусственный интеллект в производстве используется для автоматизированного контроля качества. Камера захватывает изображения продуктов на конвейере, а модель технического зрения анализирует их на предмет дефектов. Благодаря использованию TensorRT эти системы могут идти в ногу с высокоскоростными производственными линиями, мгновенно выявляя проблемы и повышая общую эффективность.
TensorRT в сравнении с другими технологиями
Хотя TensorRT - это мощный механизм вывода, важно понимать, чем он отличается от других инструментов в экосистеме ИИ:
- Фреймворки для глубокого обучения: Такие фреймворки, как PyTorch и TensorFlow, предназначены в первую очередь для обучения моделей. Хотя у них есть свои возможности для вывода, они не так оптимизированы для развертывания, как специализированная среда выполнения, например TensorRT.
- Время выполнения ONNX: Формат Open Neural Network Exchange (ONNX) обеспечивает возможность взаимодействия моделей. ONNX Runtime может выполнять модели на различных аппаратных платформах, включая NVIDIA GPU (где он может использовать TensorRT в качестве провайдера выполнения). Однако прямая интеграция с TensorRT часто дает лучшую производительность на оборудовании NVIDIA благодаря специфическим аппаратным оптимизациям.
- Intel OpenVINO: OpenVINO похож на TensorRT, но оптимизирован для аппаратного обеспечения Intel (CPU, iGPU, VPU). Он служит той же цели ускорения выводов, но адаптирован для другой аппаратной экосистемы.
Основным преимуществом TensorRT является глубокая интеграция с экосистемой NVIDIA, от GPU до библиотек CUDA, что обеспечивает беспрецедентную производительность моделей, развернутых на платформах NVIDIA, как часто показывают бенчмарки MLPerf. Управление развертыванием моделей можно еще больше упростить с помощью платформ MLOps, таких как Ultralytics HUB.