TensorRT
TensorRT هو SDK من NVIDIA يترجم الشبكات العصبية المدرّبة إلى محركات مضبوطة لتحقيق استدلال سريع على وحدة GPU واحدة. تعرّف على كيفية تحسينه للنماذج، مع الشفرة البرمجية.
TensorRT حزمة SDK من NVIDIA للاستدلال عالي الأداء في التعلم العميق على وحدات GPU من NVIDIA. يأخذ شبكة مدرّبة، عادةً بصيغة ملف ONNX، ثم يجمّعها في مرحلة البناء ضمن محرّك يُسمّى أيضًا ملف خطة: برنامج مخصص لوحدة GPU يدمج الطبقات، ويعمل بدقة حسابية أقل، ويستخدم النوى الأسرع وفقًا للقياسات على وحدة GPU المستهدفة. وفي مرحلة التشغيل، يحمّل التطبيق المحرك وينفذه، عادةً بزمن استدلال أقل ومعدل نقل أعلى من إطار العمل الأصلي. يُوزَّع TensorRT في صورة مكتبات C++ وPython، إلى جانب أداة سطر الأوامر trtexec، وإصداره الرئيسي الحالي هو TensorRT 11، وقد بلغ الإصدار 11.4 اعتبارًا من أكتوبر 2026.
كيف تحسّن TensorRT النموذج#
يطبّق المُنشئ عدة تحسينات على مخطط الشبكة:
- دمج الطبقات والموترات: تُدمج عملية الالتفاف والانحياز ودالة التنشيط في نواة واحدة، وتُحذف الطبقات التي لا تُستخدم مخرجاتها، فتظل النتائج الوسيطة على الشريحة بدلاً من نقلها ذهاباً وإياباً عبر ذاكرة GPU.
- الدقة المنخفضة: يخفض FP16 وBF16 حركة الذاكرة إلى النصف مقارنةً بـ FP32، ويخفضها INT8 وFP8 إلى النصف مرة أخرى، فيما يحقق INT4 (للأوزان فقط) وFP4 مزيداً من التخفيض على وحدات GPU الحديثة، وهذا شكل من تكميم النماذج. أزال TensorRT 11 أعلام المُنشئ الخاصة بـ FP16 وINT8، كما أزال المعايرة الضمنية لـ INT8 المتاحة في TensorRT 10، وأصبح يتطلب بدلاً منها شبكات ذات أنواع محددة بوضوح، حيث تحدد عُقد التحويل وأزواج التكميم وفك التكميم دقة كل طبقة. ويمكن لـ Model Optimizer من NVIDIA إدراج هذه العقد في ملف ONNX.
- الضبط التلقائي للنوى: يقيس المُنشئ زمن التنفيذ للتطبيقات المرشحة، المسماة تكتيكات، لكل طبقة على وحدة GPU الفعلية، ويختار الأسرع.
- تخطيط الذاكرة: تُعاد الاستفادة من مخازن التنشيط بين الطبقات التي لا تتداخل مدد بقائها، ما يقلّص البصمة الذاكرية للمحرك.
- الأشكال الديناميكية: تتيح ملفات تعريف التحسين ذات الأشكال الدنيا والمثلى والقصوى لمحرك واحد قبول أحجام دفعات أو دقات صور متفاوتة، مع ضبطه للشكل الأمثل.
قد يستغرق بناء المحرك دقائق، وتكون نتيجته مخصصة للأجهزة المستخدمة. افتراضياً، لا يعمل المحرك إلا على نوع وحدة GPU التي بُني عليها وبالإصدار نفسه من TensorRT، أما المحركات المتوافقة مع الأجهزة والإصدارات فتضحّي ببعض السرعة مقابل قابلية النقل. لذلك تحتفظ عمليات النشر بملف ONNX وتبني المحركات في البيئات التي ستشغّلها:
تصدير نموذج إلى TensorRT#
تُصدّر نماذج Ultralytics YOLO26 إلى TensorRT باستخدام model.export(format="engine")، الذي يكتب أولاً ملف ONNX ثم يبني المحرك على وحدة GPU المحلية، بدقة FP16 باستخدام quantize=16 أو بدقة INT8 باستخدام quantize=8، مع معايرته على صور من مجموعة البيانات data. وفي TensorRT 11، يطبّق التصدير هذه الدقات من خلال Model Optimizer، لأن واجهة API ذات الأنواع المحددة بوضوح تتطلب ذلك:
from ultralytics import YOLO
# أنشئ محرك TensorRT بدقة FP16 على وحدة GPU المحلية من NVIDIA (يكتب yolo26n.engine)
model = YOLO("yolo26n.pt")
model.export(format="engine", quantize=16)
# حمّل المحرك ونفّذ الاستدلال عبر واجهة API نفسها
trt_model = YOLO("yolo26n.engine")
results = trt_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_tensorrt.jpg")تُظهر الصورة المحفوظة عمليات الكشف التي أجراها محرك FP16 على صورة الحافلة، عبر الواجهة YOLO نفسها المستخدمة مع نموذج PyTorch.
TensorRT مقارنةً بالأدوات ذات الصلة#
- ONNX: تنسيق النموذج المحمول الذي تستهلكه TensorRT غالباً. ويمكن تجميع ملف ONNX واحد في محركات منفصلة لوحدة GPU في مركز بيانات ووحدة مدمجة.
- ONNX Runtime مع موفر تنفيذ TensorRT: يشغّل المخططات الفرعية التي تدعمها TensorRT كمحركات TensorRT، ويلجأ إلى نوى CUDA أو CPU للبقية، مع الإبقاء على واجهة ONNX Runtime.
- PyTorch: إطار العمل الذي تُدرّب عليه معظم النماذج. ويجمع Torch-TensorRT نماذج PyTorch باستخدام TensorRT مباشرةً، من دون خطوة ONNX منفصلة.
- محركات الاستدلال الأخرى: تؤدي OpenVINO دوراً مماثلاً على أجهزة Intel، وCore ML على أجهزة Apple، وLiteRT على أجهزة Android والأجهزة المدمجة.
- TensorRT-LLM: مكتبة مفتوحة المصدر من NVIDIA للاستدلال على النماذج اللغوية الكبيرة، مبنية حالياً على PyTorch، وتضم نوى انتباه محسّنة، وتكميماً، وفك ترميز استدلالياً، وتوازياً عبر وحدات GPU متعددة.
تطبيقات عملية#
- تحليلات الفيديو: يشغّل DeepStream SDK من NVIDIA محركات TensorRT ضمن مسارات معالجة متعددة الكاميرات لتحليلات البيع بالتجزئة وحركة المرور والأمن، حيث تتشارك تدفقات كثيرة وحدة GPU واحدة.
- الفحص الصناعي: تحتاج الكاميرات على خطوط الإنتاج السريعة إلى استدلال آني ضمن المدة التي يظهر فيها كل جزء أمام الكاميرا، وهو ما تتيحه المحركات ذات الدقة المنخفضة على وحدات GPU المدمجة.
- المركبات ذاتية القيادة: تعمل شبكات الإدراك المستخدمة في المركبات ذاتية القيادة كمحركات TensorRT على منصات NVIDIA DRIVE، مثل DRIVE AGX Orin وThor.
- الروبوتات والأجهزة الطرفية: تأتي وحدات NVIDIA Jetson مزودة بـTensorRT ضمن JetPack.










