TensorRT
Оптимизируйте модели глубокого обучения с помощью TensorRT для более быстрых и эффективных вычислений на NVIDIA GPU. Добейтесь производительности в реальном времени с YOLO и приложениями ИИ.
TensorRT - это высокопроизводительный комплект для разработки программного обеспечения (SDK), разработанный компанией
NVIDIA специально для оптимизации и выполнения
моделей глубокого обучения. Он функционирует как
специализированный механизм вывода, который берет обученные
нейронные сети и реструктурирует их для максимально эффективной работы на NVIDIA
графических процессоров (GPU). Благодаря
оптимизация вычислительного графа и управление использованием памяти, TensorRT значительно снижает
задержку вычислений и увеличивает пропускную способность,
что делает его незаменимым инструментом для разработчиков, создающих приложения, требующие немедленных ответов в реальном времени.
Как TensorRT оптимизирует производительность
Основная цель TensorRT - преодолеть разрыв между моделью, обученной в гибком фреймворке, и моделью, развернутой
для скорости. Это достигается с помощью нескольких сложных методов оптимизации:
-
Слияние слоев и оптимизация графиков: TensorRT анализирует архитектуру сети и объединяет несколько
слоев в одну операцию. Например, он может объединить
слой свертки с шагом смещения и активации.
Такое сокращение количества операций минимизирует накладные расходы на запуск ядер на GPU.
-
Точная калибровка: Чтобы еще больше повысить производительность, TensorRT поддерживает
квантование модели. Этот процесс преобразует
веса моделей из стандартного 32-битного формата с плавающей точкой (FP32) в форматы более низкой точности, такие как
смешанная точность (FP16) или 8-битные целые числа (INT8).
Это значительно снижает пропускную способность памяти при сохранении высокой
точность.
-
Автоматическая настройка ядра: Различные архитектуры GPU по-разному обрабатывают математические операции.
TensorRT автоматически выбирает лучшие слои данных и алгоритмы из обширной библиотеки оптимизированных ядер,
обеспечивая оптимальную работу модели на конкретном целевом оборудовании, таком как
NVIDIA Jetson или ЦОД A100.
-
Динамическая Tensor память: SDK оптимизирует распределение памяти, повторно используя память для тензоров (контейнеров данных), которые не нужны одновременно.
контейнеры), которые не нужны одновременно, эффективно сокращая общий объем памяти во время
развертывания модели.
Применение TensorRT в реальном мире
Благодаря своей способности обрабатывать огромные объемы данных с минимальной задержкой, TensorRT широко используется в отраслях.
основанных на компьютерном зрении и сложных задачах искусственного интеллекта.
-
Автономные транспортные средства: В области
ИИ в автомобилестроении, самоуправляемые автомобили должны
обрабатывать видеосигнал с нескольких камер, чтобы мгновенно detect пешеходов, знаки и препятствия. Используя TensorRT,
модели восприятия, такие как сети обнаружения объектов
анализируют кадры за миллисекунды, позволяя системе управления автомобилем принимать важные для безопасности решения без задержек.
задержки.
-
Умное производство: Современные заводы используют
ИИ в производстве для автоматизированного оптического
контроля. Высокоскоростные камеры захватывают изображения изделий на сборочных линиях, а TensorRT модели выявляют
дефекты или аномалии в режиме реального времени. Таким образом, контроль качества не отстает от высокоскоростного производства.
часто развертывая пограничные устройства искусственного интеллекта прямо на производстве.
часто развертываются на пограничных устройствах ИИ прямо на заводе.
Использование TensorRT с Ultralytics YOLO11
Интеграция TensorRT в ваш рабочий процесс - это простое решение с помощью современных инструментов искусственного интеллекта. Сайт ultralytics пакет
обеспечивает бесшовный метод преобразования стандартных
PyTorch модели в движки TensorRT . Это позволяет пользователям
использовать самую современную архитектуру
Ultralytics YOLO11 с аппаратным ускорением NVIDIA
GPU.
В следующем примере показано, как экспортировать модель YOLO11 в файл движка TensorRT (.engine) и
использовать его для выводов:
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TensorRT format (creates 'yolo11n.engine')
# This step optimizes the model for the specific GPU currently in use
model.export(format="engine")
# Load the optimized TensorRT model for high-speed inference
tensorrt_model = YOLO("yolo11n.engine")
results = tensorrt_model("https://ultralytics.com/images/bus.jpg")
TensorRT в сравнении с другими технологиями вывода
Важно отличать TensorRT от других инструментов в экосистеме машинного обучения.
-
TensorRT против обучающих фреймворков: Библиотеки, такие как PyTorch и
TensorFlow предназначены в первую очередь для
для обучения моделей, приоритет отдается гибкости и простоте отладки. TensorRT предназначена строго для
выводов, приоритет отдается сырой скорости и эффективности на конкретном оборудовании.
-
TensorRT против ONNX Runtime: The
ONNX (Open Neural Network Exchange)
Формат ONNX разработан для обеспечения совместимости различных платформ. В то время как
ONNX Runtime - это универсальный движок, который работает на различном оборудовании, TensorRT
обеспечивает более глубокую, аппаратно-специфическую оптимизацию исключительно для NVIDIA GPU, что часто дает более высокую производительность, чем
общих бегунов.
-
TensorRT против OpenVINO: Подобно тому, как TensorRT оптимизирован для оборудования NVIDIA , инструментарий
ИнструментарийOpenVINO разработан для ускорения
вычислений на процессорах Intel (CPU и интегрированные GPU). Выбор между ними полностью зависит от используемого вами
аппаратное обеспечение.
Для масштабируемых облачных развертываний движки TensorRT часто обслуживаются с помощью
NVIDIA Triton Inference Server, который управляет версиями моделей
и эффективно обрабатывает одновременные запросы.