Akselerasi hardware dengan LiteRT

Akselerasi hardware adalah penggunaan hardware komputer khusus untuk meningkatkan kecepatan dan efisiensi eksekusi model AI. Untuk LiteRT, hal ini terutama melibatkan penggunaan Unit Pemrosesan Grafis (GPU) atau Unit Pemrosesan Neural (NPU) untuk inferensi AI, serta petunjuk vektor Unit Pemrosesan Sentral (CPU) serbaguna.

Compiled Model API LiteRT menangani akselerasi dalam dua langkah:

  1. Kompilasi: menyiapkan model untuk dijalankan dengan hardware tertentu.
  2. Kirim: jalankan operasi yang dipilih pada hardware yang relevan.

Fase kompilasi mengubah model LiteRT dengan antarmuka baru yang menawarkan lebih banyak fleksibilitas melalui plugin compiler. Kompilasi model terjadi lebih awal (AOT), sebelum grafik dieksekusi, dan menyesuaikan grafik tertentu untuk dijalankan di perangkat.

Jenis akselerator

LiteRT menyediakan tiga jenis akselerator: NPU, GPU, dan CPU.

  • NPU: antarmuka terpadu untuk Qualcomm AI Engine Direct dan MediaTek NeuroPilot saat ini.
  • GPU: Backend OpenCL serta backend WebGPU dan Metal menggunakan Compiled Model API.
  • CPU: Eksekusi yang dioptimalkan XNNPACK adalah default dan selalu tersedia.

Akselerator ini dapat digabungkan untuk mendapatkan performa terbaik saat beberapa operasi kompleks tidak tersedia di hardware tertentu. Saat akselerator bersaing untuk suatu operasi, LiteRT menggunakan urutan prioritas berikut: NPU, GPU, CPU.

Akselerasi GPU

Dengan akselerasi GPU LiteRT, Anda dapat membuat buffer input dan output yang kompatibel dengan GPU, mencapai zero-copy dengan data Anda di memori GPU, dan menjalankan tugas secara asinkron untuk memaksimalkan paralelisme. Tidak ada penyiapan delegasi yang diperlukan—cukup tentukan akselerator pada waktu kompilasi:

// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
    CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));

Untuk mengetahui informasi selengkapnya tentang akselerasi GPU, lihat Akselerasi GPU dengan LiteRT

Akselerasi NPU

LiteRT menyediakan antarmuka terpadu untuk memanfaatkan NPU tanpa mengharuskan Anda menavigasi compiler, runtime, atau dependensi library khusus vendor secara terpisah. Compiler ini mendukung NPU Qualcomm dan MediaTek untuk jalur kompilasi AOT dan On-Device.

Penggunaan NPU dengan LiteRT biasanya melibatkan konversi dan kompilasi model dengan Play untuk AI di Perangkat (PODAI) serta men-deploy model dengan Modul Fitur dan Paket AI Play.