Torch-Tensorrt يجلب قوة Tensorrt إلى Pytorch. تسريع زمن انتقال الاستدلال بمقدار ما يصل إلى 5x مقارنة بالتنفيذ المتحمس في سطر واحد فقط من التعليمات البرمجية.
يتم نشر إصدارات مستقرة من Torch-Tensorrt على Pypi
pip install torch-tensorrtيتم نشر إصدارات ليلية من Torch-Tensorrt على مؤشر حزمة Pytorch
pip install --pre torch-tensorrt --index-url https://download.pytorch.org/whl/nightly/cu124يتم توزيع Torch-Tensorrt أيضًا في حاوية Nvidia NGC Pytorch الجاهزة للتشغيل والتي تحتوي على جميع التبعيات مع الإصدارات المناسبة ومكتبات الدفاتر على سبيل المثال.
لمزيد من طرق التثبيت المتقدمة ، يرجى الاطلاع هنا
يمكنك استخدام torch-tensorrt في أي مكان تستخدمه torch.compile :
import torch
import torch_tensorrt
model = MyModel (). eval (). cuda () # define your model here
x = torch . randn (( 1 , 3 , 224 , 224 )). cuda () # define what the inputs to the model will look like
optimized_model = torch . compile ( model , backend = "tensorrt" )
optimized_model ( x ) # compiled on first run
optimized_model ( x ) # this will be fast!إذا كنت ترغب في تحسين النموذج الخاص بك قبل الوقت و/أو النشر في بيئة C ++ ، فإن Torch-Tensorrt يوفر سير عمل على غرار التصدير الذي يقوم بتسلسل الوحدة النمطية المحسنة. يمكن نشر هذه الوحدة في Pytorch أو مع libtorch (أي بدون تبعية Python).
import torch
import torch_tensorrt
model = MyModel (). eval (). cuda () # define your model here
inputs = [ torch . randn (( 1 , 3 , 224 , 224 )). cuda ()] # define a list of representative inputs here
trt_gm = torch_tensorrt . compile ( model , ir = "dynamo" , inputs = inputs )
torch_tensorrt . save ( trt_gm , "trt.ep" , inputs = inputs ) # PyTorch only supports Python runtime for an ExportedProgram. For C++ deployment, use a TorchScript file
torch_tensorrt . save ( trt_gm , "trt.ts" , output_format = "torchscript" , inputs = inputs ) import torch
import torch_tensorrt
inputs = [ torch . randn (( 1 , 3 , 224 , 224 )). cuda ()] # your inputs go here
# You can run this in a new python session!
model = torch . export . load ( "trt.ep" ). module ()
# model = torch_tensorrt.load("trt.ep").module() # this also works
model ( * inputs )# include " torch/script.h "
# include " torch_tensorrt/torch_tensorrt.h "
auto trt_mod = torch::jit::load( " trt.ts " );
auto input_tensor = [...]; // fill this with your inputs
auto results = trt_mod.forward({input_tensor});| منصة | يدعم |
|---|---|
| Linux AMD64 / GPU | مدعوم |
| Windows / GPU | مدعوم (Dynamo فقط) |
| Linux Aarch64 / GPU | التجميع الأصلي المدعوم على jetpack-4.4+ (استخدم v1.0.0 في الوقت الحالي) |
| Linux AARCH64 / DLA | التجميع الأصلي المدعوم على jetpack-4.4+ (استخدم v1.0.0 في الوقت الحالي) |
| Linux PPC64LE / GPU | غير مدعوم |
ملاحظة: راجع حاوية Nvidia L4T Pytorch NGC لمكتبات Pytorch على Jetpack.
هذه هي التبعيات التالية المستخدمة للتحقق من testcases. يمكن أن تعمل Torch-Tensorrt مع إصدارات أخرى ، لكن الاختبارات ليست مضمونة.
يتم استخدام الإهمال لإبلاغ المطورين بأن بعض واجهات برمجة التطبيقات والأدوات لم تعد موصى بها للاستخدام. بدءًا من الإصدار 2.3 ، لدى Torch-Tensorrt سياسة الإهمال التالية:
يتم توصيل إشعارات الإهمال في ملاحظات الإصدار. سيكون لوظائف API المنهكة بيانًا في المصدر الموثق عندما تم إهمالها. ستصدر الأساليب والفصول المنهكة تحذيرات من الإهمال في وقت التشغيل ، إذا تم استخدامها. يوفر Torch-Tensorrt فترة هجرة مدتها 6 أشهر بعد الإهمال. واجهات برمجة التطبيقات والأدوات تستمر في العمل خلال فترة الترحيل. بعد انتهاء فترة الترحيل ، تتم إزالة واجهات برمجة التطبيقات والأدوات بطريقة تتفق مع الإصدار الدلالي.
ألق نظرة على المساهمة
يمكن العثور على ترخيص Torch-Tensorrt في ملف الترخيص. وهي مرخصة برخصة نمط BSD