← semua berita

Hugging Face memangkas 22 persen waktu generasi dengan menumpangtindihkan CPU dan GPU

Engineering · · 3 hari lalu · sumber (huggingface.co)

Tim transformers Hugging Face menerbitkan panduan tentang masalah yang mudah diabaikan sampai kamu mengukurnya. Pada continuous batching standar, CPU menyiapkan batch berikutnya sementara GPU menganggur, lalu GPU menghitung sementara CPU menunggu. Keduanya tidak pernah tumpang tindih, dan dalam set-up mereka itu membuang sekitar 24 persen waktu generasi dengan GPU tidak melakukan apa-apa.

Perbaikannya adalah asynchronous batching, dan tulisan ini layak dibaca karena menunjukkan mekanismenya, bukan sekadar idenya: CUDA stream terpisah untuk transfer host-to-device, komputasi, dan device-to-host; CUDA event untuk mengatur urutan kerja antarstream tanpa memblok CPU; dan slot input serta output bersistem double-buffer agar CPU bisa mengisi batch N+1 saat GPU menjalankan batch N, berbagi satu CUDA graph memory pool sehingga VRAM tidak berlipat. Pada model 8B yang menghasilkan 8K token dengan batch size 32, total waktu turun dari 300,6 ke 234,5 detik, percepatan 22 persen, dengan utilisasi GPU naik dari 76 ke 99,4 persen. Pada tarif 5 dolar per jam untuk H200, itu hemat sekitar 0,59 dolar per jam generasi.

Kenapa ini penting

Kalau kamu menjalankan inference sendiri, ini pola konkret pada level kode yang bisa kamu salin: resep stream dan double-buffer memulihkan waktu GPU yang nyaris menganggur pada beban apa pun dengan fase CPU dan GPU bergantian, bukan cuma generasi token.

InferenceHugging Face