NPU çalışma zamanı entegrasyonu için LiteRT Dispatch API

Dispatch API'yi ne zaman uygulamalıyım?

LiteRT Dispatch API, belirli bir donanım hızlandırıcı çalışma zamanını LiteRT çerçevesine entegre etmeniz gerektiğinde gereklidir. Derleyici eklentisi tarafından oluşturulan derlenmiş alt grafikleri yürütmek için Compiler Plugin ile birlikte çalışır.

Dispatch API, LiteRT'nin bir hızlandırıcının çalışma zamanıyla oturum yönetmek için kullanacağı, satıcı tarafından uygulanan bir işlevler kümesidir. Bu işlevler, cihaz oturumlarını, alt grafik yürütmeyi ve ana makine ile cihaz arasındaki arabellek hareketini kapsar. Derleyici eklentisiyle birlikte gönderim API'sinin uygulanması, LiteRT'nin verimli çıkarım için hızlandırıcının özelliklerinden tam olarak yararlanmasına olanak tanır.

Gönderme API'sinin (ve derleyici eklentisinin) "ne zaman" uygulanacağıyla ilgili daha ayrıntılı bilgiyi LiteRT Compiler Plugin sayfasında bulabilirsiniz.

Dispatch API nasıl çalışır?

Dispatch API, CompiledModel tarafından NpuAccelerator kullanılarak kullanılır. Bu işlem dahili olarak bir DispatchDelegate oluşturur ve çalışan donanıma yerleştirilmiş NPU'yu kullanmak için Dispatch API'yi kullanan bu DispatchDelegate'dır.

Dispatch API Veri Türleri

Dispatch API'de, NPU'larda bir modeli yürütmek için aşağıdaki veri türleri kullanılır.

  • DispatchDeviceContext

    NPU çıkarımı tarafından kullanılan arabellekleri yönetmek için kullanılır.

  • DispatchInvocationContext

    Bu, modeli yürütmek için kullanılan veri yapısıdır. Bu özellik, DispatchDeviceContext kaydedilen gerçek giriş ve çıkış belleğini oluşturulan DispatchGraph ile ilişkilendirerek çalışır.

Gönderme API'leri

Dispatch API'nin tam tanımı için lütfen vendors/c/litert_dispatch.h dosyasına bakın.