Akselerasi hardware adalah penggunaan hardware komputer khusus untuk meningkatkan kecepatan eksekusi dan efisiensi model AI. Untuk LiteRT, hal ini terutama mencakup penggunaan Graphics Processing Unit (GPU) atau Neural Processing Unit (NPU) untuk inferensi AI, serta petunjuk vektor Central Processing Unit (CPU) umum.
LiteRT mendukung akselerasi hardware melalui penggunaan TFLite Delegates, yang mengambil alih bagian dari grafik LiteRT dengan mengganti operasinya sendiri dalam grafik. LiteRT Next meningkatkan proses ini dengan menangani akselerasi hardware melalui dua langkah:
- Kompilasi: menyiapkan model untuk dijalankan dengan hardware tertentu.
- Dispatch: menjalankan operasi yang dipilih pada hardware yang relevan.
Fase kompilasi mengubah model LiteRT dengan antarmuka baru yang menawarkan fleksibilitas lebih besar melalui plugin compiler. Kompilasi model terjadi terlebih dahulu (AOT), sebelum grafik dieksekusi, dan menyesuaikan grafik tertentu untuk dijalankan di perangkat.
Jenis akselerator
LiteRT menyediakan tiga jenis akselerator: NPU, GPU, dan CPU.
- Akselerasi NPU mendukung hardware khusus yang disatukan di balik satu antarmuka. Dukungan NPU tersedia melalui Program Akses Awal.
- Akselerasi GPU mendukung perangkat yang mengaktifkan WebGL dan OpenCL.
- Akselerasi CPU mendukung berbagai prosesor melalui penggunaan library XNNPack. Ini adalah tingkat akselerasi default dan selalu tersedia.
Akselerasi ini dapat digabungkan untuk mendapatkan performa terbaik saat beberapa operasi kompleks tidak tersedia di hardware tertentu. Saat akselerator bersaing dalam operasi, LiteRT menggunakan urutan prioritas berikut: NPU, GPU, CPU.
Akselerasi GPU
Dengan akselerasi GPU LiteRT Next, Anda dapat membuat buffering input dan output yang cocok dengan GPU, mencapai zero-copy dengan data Anda di memori GPU, dan menjalankan tugas secara asinkron untuk memaksimalkan paralelisme. LiteRT Next menggunakan delegasi GPU baru dan yang ditingkatkan, yang tidak ditawarkan oleh LiteRT.
Menjalankan model di GPU dengan LiteRT memerlukan pembuatan delegasi eksplisit, panggilan fungsi, dan modifikasi grafik. Dengan LiteRT Next, cukup tentukan akselerator:
// Create a compiled model targeting GPU
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu));
Untuk informasi selengkapnya tentang akselerasi GPU, lihat Akselerasi GPU dengan Akselerasi LiteRT
Akselerasi NPU
LiteRT Next menyediakan antarmuka terpadu untuk memanfaatkan NPU tanpa memaksa Anda menavigasi compiler, runtime, atau dependensi library khusus vendor satu per satu. Menggunakan LiteRT Next untuk akselerasi NPU menghindari banyak komplikasi khusus vendor dan khusus perangkat, meningkatkan performa untuk inferensi real-time dan model besar, serta meminimalkan salinan memori dengan penggunaan buffer hardware zero-copy.
Menggunakan NPU dengan LiteRT melibatkan konversi dan kompilasi model dengan Play untuk AI di Perangkat (PODAI) dan men-deploy model dengan Paket AI Play dan Modul Fitur.