Donanım hızlandırma, bir yapay zeka modelinin yürütme hızını ve verimliliğini artırmak için özel bilgisayar donanımının kullanılmasıdır. LiteRT'de bu işlem, öncelikle yapay zeka çıkarımı için Grafik İşlem Birimleri (GPU) veya Sinirsel İşlem Birimleri (NPU) ile genel amaçlı Merkezi İşlem Birimleri (CPU) vektör talimatlarının kullanılmasını içerir.
LiteRT Compiled Model API, hızlandırma işlemini iki adımda gerçekleştirir:
- Derleme: Belirli bir donanımla çalışacak bir model hazırlayın.
- Gönder: Seçilen işlemleri ilgili donanımda çalıştırın.
Derleme aşamasında, derleyici eklentileri aracılığıyla daha fazla esneklik sunan yeni bir arayüzle LiteRT modeli değiştirilir. Model derleme, grafik yürütülmeden önce önceden yapılır (AOT) ve belirli bir grafiği cihazda çalışacak şekilde uyarlar.
Hızlandırıcı türleri
LiteRT üç tür hızlandırıcı sağlar: NPU, GPU ve CPU.
- NPU: Bugün Qualcomm AI Engine Direct ve MediaTek NeuroPilot için birleşik arayüz.
- GPU: OpenCL arka ucu ile derlenmiş model API'sini kullanan WebGPU ve Metal arka uçları.
- CPU: XNNPACK ile optimize edilmiş yürütme varsayılandır ve her zaman kullanılabilir.
Bu hızlandırıcılar, belirli bir donanımda bazı karmaşık işlemler kullanılamadığında mümkün olan en iyi performansı elde etmek için birleştirilebilir. Hızlandırıcılar bir işlem için rekabet ettiğinde LiteRT, aşağıdaki öncelik sırasını kullanır: NPU, GPU, CPU.
GPU hızlandırma
LiteRT GPU hızlandırma ile GPU dostu giriş ve çıkış arabellekleri oluşturabilir, GPU belleğindeki verilerinizle sıfır kopya elde edebilir ve paralelliği en üst düzeye çıkarmak için görevleri eşzamansız olarak yürütebilirsiniz. Temsilci kanalı gerekmez. Derleme zamanında hızlandırıcıyı belirtmeniz yeterlidir:
// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));
GPU hızlandırma hakkında daha fazla bilgi için LiteRT ile GPU hızlandırma başlıklı makaleyi inceleyin.
NPU hızlandırma
LiteRT, satıcıya özel derleyiciler, çalışma zamanları veya kitaplık bağımlılıkları arasında tek tek gezinmenizi zorunlu kılmadan NPU'lardan yararlanmak için birleşik bir arayüz sağlar. Hem AOT hem de cihaz üzerinde derleme yolları için Qualcomm ve MediaTek NPU'larını destekler.
LiteRT ile NPU'ları kullanmak genellikle Cihaz Üzerinde Yapay Zeka için Play (PODAI) ile bir modeli dönüştürmeyi ve derlemeyi, Play Yapay Zeka Paketi ve Özellik Modülü ile modeli dağıtmayı içerir.