TensorRT
TensorRT, eğitilmiş sinir ağlarını tek bir GPU'da hızlı çıkarım için ayarlanmış motorlara derleyen NVIDIA SDK'sıdır. Modelleri nasıl optimize ettiğini ve kodu ele alır.
TensorRT, NVIDIA'nın yüksek performanslı derin öğrenme çıkarımı için NVIDIA GPU'larında kullanılan SDK'sıdır. Eğitilmiş bir ağı genellikle bir ONNX dosyası olarak alır ve derleme aşamasında ağı, plan dosyası olarak da adlandırılan bir motora derler: bu motor, katmanları birleştiren, düşük hassasiyetle çalışan ve hedef GPU'da ölçülen en hızlı çekirdekleri kullanan GPU'ya özgü bir programdır. Çalışma zamanı aşamasında bir uygulama motoru yükler ve çalıştırır; motor genellikle özgün çerçeveye kıyasla daha düşük çıkarım gecikmesi ve daha yüksek verim sunar. TensorRT, C++ ve Python kitaplıklarının yanı sıra trtexec komut satırı aracını da sunar; güncel ana sürümü TensorRT 11'dir ve Ekim 2026 itibarıyla 11.4 sürümündedir.
TensorRT Bir Modeli Nasıl Optimize Eder#
Oluşturucu, ağ grafiğine çeşitli optimizasyonlar uygular:
- Katman ve tensör birleştirme: Evrişim, yanlılığı ve aktivasyonu tek bir çekirdeğe dönüşür; çıktıları hiçbir yerde kullanılmayan katmanlar kaldırılır. Böylece ara sonuçlar GPU belleğine gidip gelmek yerine yonga üzerinde kalır.
- Düşük hassasiyet: FP16 ve BF16, FP32'ye kıyasla bellek trafiğini yarıya indirir; INT8 ve FP8 bunu bir kez daha yarıya indirir. INT4 (yalnızca ağırlıklar için) ve FP4 ise yeni GPU'larda bunu daha da ileri taşır; bu, bir tür model nicelemesidir. TensorRT 11, FP16 ve INT8 oluşturucu bayraklarını ve TensorRT 10'un örtük INT8 kalibrasyonunu kaldırdı; bunun yerine her katmanın hassasiyetini dönüştürme düğümleri ve nicele-ters nicele çiftlerinin belirttiği güçlü türlenmiş ağları zorunlu kılıyor. NVIDIA'nın Model Optimizer aracı bu düğümleri bir ONNX dosyasına ekleyebilir.
- Çekirdek otomatik ayarı: Oluşturucu, her katman için taktik adı verilen aday uygulamaları gerçek GPU'da zamanlar ve en hızlı olanı kullanır.
- Bellek planlaması: Etkin oldukları süreler çakışmayan katmanlar arasında aktivasyon arabellekleri yeniden kullanılır; bu da motorun bellek kullanımını azaltır.
- Dinamik şekiller: Minimum, optimum ve maksimum şekillere sahip optimizasyon profilleri, tek bir motorun değişen toplu iş boyutlarını veya görüntü çözünürlüklerini kabul etmesini sağlar; motor optimum şekle göre ayarlanır.
Bir motor oluşturmak dakikalar sürebilir ve sonuç donanıma özgüdür. Varsayılan olarak motor yalnızca oluşturulduğu GPU türünde ve aynı TensorRT sürümüyle çalışır; donanım ve sürüm uyumlu motorlar ise taşınabilirlik karşılığında bir miktar hızdan ödün verir. Bu nedenle dağıtımlarda ONNX dosyası saklanır ve motorlar çalıştırılacakları yerde oluşturulur:
Bir Modeli TensorRT'ye Aktarma#
Ultralytics YOLO26 modelleri, model.export(format="engine") ile TensorRT'ye aktarılır. Bu işlem önce bir ONNX dosyası yazar, ardından yerel GPU'da motoru FP16 olarak quantize=16 ile veya data veri kümesindeki görüntülerle kalibre edilmiş INT8 olarak quantize=8 ile oluşturur. TensorRT 11'de güçlü türlenmiş API'nin gerektirdiği üzere dışa aktarma, bu hassasiyetleri Model Optimizer üzerinden uygular:
from ultralytics import YOLO
# Yerel NVIDIA GPU'da bir FP16 TensorRT motoru oluştur (yolo26n.engine dosyasını yazar)
model = YOLO("yolo26n.pt")
model.export(format="engine", quantize=16)
# Motoru yükle ve aynı API üzerinden çıkarım çalıştır
trt_model = YOLO("yolo26n.engine")
results = trt_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_tensorrt.jpg")Kaydedilen görüntüde, FP16 motorunun otobüs fotoğrafında algıladığı nesneler PyTorch modeliyle aynı YOLO arayüzü üzerinden gösterilir.
TensorRT ve İlişkili Araçlar#
- ONNX: TensorRT'nin en sık kullandığı taşınabilir model biçimidir. Tek bir ONNX dosyası, veri merkezi GPU'su ve gömülü modül için ayrı motorlara derlenebilir.
- TensorRT yürütme sağlayıcısını kullanan ONNX Runtime: TensorRT'nin desteklediği alt grafikleri TensorRT motorları olarak çalıştırır, geri kalanlar için CUDA veya CPU çekirdeklerine geçiş yapar ve ONNX Runtime API'sini korur.
- PyTorch: Çoğu modelin eğitildiği çerçevedir. Torch-TensorRT, ayrı bir ONNX adımı olmadan PyTorch modellerini doğrudan TensorRT ile derler.
- Diğer çıkarım motorları: Intel donanımı için OpenVINO, Apple aygıtları için Core ML ve Android ile gömülü aygıtlar için LiteRT, diğer yongalarda aynı işlevi görür.
- TensorRT-LLM: NVIDIA'nın büyük dil modeli çıkarımına yönelik açık kaynaklı kitaplığıdır. Artık PyTorch üzerine kurulu mimarisiyle optimize edilmiş dikkat çekirdekleri, niceleme, spekülatif kod çözme ve çoklu GPU paralelliği sunar.
Gerçek Dünya Uygulamaları#
- Video analitiği: NVIDIA'nın DeepStream SDK aracı, perakende, trafik ve güvenlik analitiğinde çok sayıda akışın tek bir GPU'yu paylaştığı çok kameralı işlem hatlarında TensorRT motorlarını çalıştırır.
- Endüstriyel denetim: Hızlı üretim hatlarındaki kameraların, her parçanın görüş alanında kaldığı süre içinde gerçek zamanlı çıkarım yapması gerekir; düşük hassasiyetli motorlar bunu kompakt GPU'larda mümkün kılar.
- Otonom araçlar: Otonom araçlara yönelik algı ağları, DRIVE AGX Orin ve Thor gibi NVIDIA DRIVE platformlarında TensorRT motorları olarak çalışır.
- Robotik ve uç aygıtlar: NVIDIA Jetson modülleri TensorRT'yi JetPack ile birlikte sunar. TensorRT 11.4, JetPack'i desteklemez; bu nedenle Jetson dağıtımları motorlarını, JetPack sürümlerinin sağladığı TensorRT 10 sürümüyle oluşturur.










