شتابدهی سختافزاری به استفاده از سختافزارهای کامپیوتری تخصصی برای بهبود سرعت اجرا و کارایی یک مدل هوش مصنوعی گفته میشود. برای LiteRT، این امر در درجه اول شامل استفاده از واحدهای پردازش گرافیکی (GPU) یا واحدهای پردازش عصبی (NPU) برای استنتاج هوش مصنوعی و همچنین دستورالعملهای برداری واحدهای پردازش مرکزی (CPU) با هدف کلی است.
رابط برنامهنویسی کاربردی مدل کامپایلشدهی LiteRT، شتابدهی را در دو مرحله مدیریت میکند:
- کامپایل: آمادهسازی یک مدل برای اجرا با یک سختافزار خاص.
- اعزام: اجرای عملیات انتخاب شده روی سختافزار مربوطه.
مرحله کامپایل، مدل LiteRT را با رابط کاربری جدیدی اصلاح میکند که انعطافپذیری بیشتری را از طریق افزونههای کامپایلر ارائه میدهد. کامپایل مدل قبل از زمان (AOT)، قبل از اجرای نمودار، انجام میشود و یک نمودار خاص را برای اجرا روی دستگاه تنظیم میکند.
انواع شتابدهندهها
LiteRT سه نوع شتابدهنده ارائه میدهد: NPU، GPU و CPU.
- NPU: رابط یکپارچه برای Qualcomm AI Engine Direct و MediaTek NeuroPilot همین امروز.
- پردازنده گرافیکی (GPU): بکاند OpenCL به علاوه WebGPU و بکاندهای Metal با استفاده از Compiled Model API.
- پردازنده: اجرای بهینهشده توسط XNNPACK پیشفرض است و همیشه در دسترس است.
این شتابدهندهها میتوانند برای دستیابی به بهترین عملکرد ممکن، زمانی که برخی عملیات پیچیده روی یک سختافزار مشخص در دسترس نیستند، با هم ترکیب شوند. وقتی شتابدهندهها بر سر یک عملیات با هم رقابت میکنند، LiteRT از ترتیب اولویت زیر استفاده میکند: NPU، GPU، CPU.
شتابدهی پردازنده گرافیکی
با شتابدهندهی LiteRT GPU، میتوانید بافرهای ورودی و خروجی سازگار با GPU ایجاد کنید، به کپی صفر از دادههای خود در حافظهی GPU دست یابید و وظایف را به صورت غیرهمزمان اجرا کنید تا موازیسازی به حداکثر برسد. نیازی به لولهکشی نماینده نیست - فقط شتابدهنده را در زمان کامپایل مشخص کنید:
// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));
برای اطلاعات بیشتر در مورد شتابدهی GPU، به شتابدهی GPU با LiteRT مراجعه کنید.
شتاب NPU
LiteRT یک رابط کاربری یکپارچه برای مهار NPUها فراهم میکند، بدون اینکه شما را مجبور کند به صورت جداگانه کامپایلرها، زمانهای اجرا یا وابستگیهای کتابخانهای مختص فروشنده را پیمایش کنید. این نرمافزار از NPUهای کوالکام و مدیاتک برای هر دو مسیر کامپایل AOT و On-Device پشتیبانی میکند.
استفاده از NPUها با LiteRT معمولاً شامل تبدیل و کامپایل یک مدل با Play for On-device AI (PODAI) و استقرار مدل با Play AI Pack و Feature Module است.