Transformers documentation
Kernels
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.
| platform | perangkat 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
- panduan Memuat kernel untuk memulai
- Repositori GitHub Kernels
- artikel blog Perkuat Model Anda dalam 5 Menit dengan Hugging Face Kernel Hub