LiteRT Next ile donanım hızlandırma

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ımlarının kullanılmasıdır. LiteRT için bu, öncelikle yapay zeka çıkarımıyla ilgili Grafik İşlem Birimleri (GPU) veya Sinir İşlem Birimleri (NPU) ile genel amaçlı Merkezi İşlem Birimleri (CPU) vektör talimatlarının kullanılmasını içerir.

LiteRT, TFLite Temsilcileri'ni kullanarak donanım hızlandırmayı destekledi. Bu temsilciler, grafikteki kendi işlemlerini yerine getirerek LiteRT grafiğinin bazı kısımlarını devralır. LiteRT Next, donanım hızlandırmayı iki adımda ele alarak bu süreci iyileştirir:

  1. Derleme: Bir modeli belirli bir donanımla çalışacak şekilde hazırlayın.
  2. Gönderme: Seçilen işlemleri ilgili donanımda çalıştırın.

Derleme aşamasında, LiteRT modeli derleyici eklentileri aracılığıyla daha fazla esneklik sunan yeni bir arayüzle değiştirilir. Model derlemesi, grafik yürütülmeden önce (AOT) gerçekleşir ve belirli bir grafiği cihazda çalışacak şekilde özelleştirir.

Hızlandırıcı türleri

LiteRT üç tür hızlandırıcı sağlar: NPU, GPU ve CPU.

  • NPU hızlandırması, tek bir arayüz altında birleştirilmiş özel donanımı destekler. NPU desteği, Erken Erişim Programı aracılığıyla sunulur.
  • GPU hızlandırma, WebGL ve OpenCL özellikli cihazları destekler.
  • CPU hızlandırması, XNNPack kitaplığının kullanılmasıyla çeşitli işlemcileri destekler. Bu, varsayılan hızlanma seviyesidir ve her zaman kullanılabilir.

Belirli bir donanımda bazı karmaşık işlemler kullanılamadığında mümkün olan en iyi performansı elde etmek için bu hızlandırıcılar 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 Next'in GPU hızlandırması sayesinde GPU'ya uygun giriş ve çıkış arabellekleri oluşturabilir, GPU belleğindeki verilerinizle sıfır kopyalama elde edebilir ve paralelliği en üst düzeye çıkarmak için görevleri eşzamansız olarak yürütebilirsiniz. LiteRT Next, LiteRT tarafından sunulmayan yeni ve geliştirilmiş bir GPU temsilcisi kullanır.

LiteRT ile GPU'da model çalıştırmak için açık yetkilendirme oluşturma, işlev çağrıları ve grafik değişiklikleri gerekir. LiteRT Next ile 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ırması hakkında daha fazla bilgi için LiteRT hızlandırması ile GPU hızlandırması başlıklı makaleyi inceleyin.

NPU hızlandırması

LiteRT Next, tedarikçiye özgü derleyiciler, çalışma zamanları veya kitaplık bağımlılıklarında ayrı ayrı gezinmenize gerek kalmadan NP'lerden yararlanmak için birleşik bir arayüz sağlar. NPU hızlandırması için LiteRT Next'i kullanmak, tedarikçiye ve cihaza özgü birçok karmaşıklığı önler, gerçek zamanlı ve büyük model çıkarım için performansı artırır ve sıfır kopya donanım arabelleği kullanımıyla bellek kopyalarını en aza indirir.

LiteRT ile NPU'ları kullanmak, Cihaz Üzerinde Yapay Zeka için Play (PODAI) ile bir modeli dönüştürüp derlemeyi ve modeli Play AI Pack ve Feature Module ile dağıtmayı içerir.