Transformers documentation

Kernels

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kernels

Operasi PyTorch bersifat umum. Vendor perangkat keras dan komunitas membuat implementasi khusus yang berjalan lebih cepat di platform tertentu. Menginstal kernel yang dioptimalkan ini merupakan tantangan karena memerlukan pencocokan versi compiler, toolkit CUDA, dan build yang spesifik untuk platform.

platformperangkat yang didukung
GPU NVIDIA (CUDA)Arsitektur modern dengan kemampuan komputasi 7.0+ (Volta, Turing, Ampere, Hopper, Blackwell)
GPU AMD (ROCm)Kompatibel dengan perangkat yang didukung ROCm
Apple Silicon (Metal)Chip M-series (M1, M2, M3, M4 dan yang lebih baru)
GPU Intel (XPU)Intel Data Center GPU Max Series dan perangkat yang kompatibel

Kernels menyelesaikan masalah ini dengan mendistribusikan biner yang sudah dikompilasi melalui Hub. Platform Anda dideteksi saat runtime dan biner yang tepat dimuat secara otomatis.

Ketika use_kernels=True, Transformers mengidentifikasi lapisan yang memiliki implementasi kernel teroptimasi yang tersedia. Ia mengunduh dan meng-cache kernel dari Hub hanya saat diperlukan untuk mengurangi waktu startup. Kernel mempercepat operasi yang intensif komputasi seperti attention, normalisasi, dan operasi yang digabungkan (fused).

Tidak semua operasi memiliki implementasi kernel. Perpustakaan ini kembali ke PyTorch standar ketika tidak ada kernel yang tersedia.

Determinisme

Beberapa kernel menghasilkan hasil yang sedikit berbeda dari PyTorch karena pengurutan ulang operasi atau strategi akumulasi. Perbedaan ini secara fungsional ekuivalen tetapi memengaruhi reproduktibilitas.

Untuk perilaku deterministik, coba langkah-langkah berikut.

  • Periksa dokumentasi repositori kernel untuk jaminan determinisme. Sebagai contoh, kernel SDPA di gpt-oss-metal-kernels cocok dengan implementasi PyTorch 97% dari waktu.
  • Nonaktifkan kernel tertentu yang memengaruhi kasus penggunaan Anda.
  • Set seed acak dan flag deterministik PyTorch.

Sumber daya

Update on GitHub