Mempercepat Pelatihan Transformer dengan NVIDIA Transformer Engine, Kernel Terpadu, BF16, FP8, dan Benchmark GPU
NVIDIA
Tutorial ini mengeksplorasi bagaimana NVIDIA Transformer Engine mempercepat beban kerja transformer dengan menggabungkan kernel GPU terpadu, komputasi BF16, dan eksekusi FP8 yang sadar perangkat keras. Tutorial ini mencakup instalasi, deteksi GPU, tur modul, konfigurasi resep FP8, pelatihan model, benchmarking, dan pembuatan autoregresif.
Tutorial dimulai dengan menginstal NVIDIA Transformer Engine dan menginisialisasi lingkungan PyTorch. Tutorial ini mendeteksi arsitektur GPU untuk menentukan apakah kernel TE dan tensor core FP8 didukung, dengan fallback PyTorch murni untuk perangkat keras yang tidak mendukung. Komponen inti yang digabungkan seperti te.Linear, te.LayerNorm, te.LayerNormLinear, te.LayerNormMLP, dan te.TransformerLayer diperiksa. Resep FP8 dengan skala tertunda dikonfigurasi dengan format hibrida E4M3/E5M2 dan riwayat amax. Model bahasa kausal bergaya GPT yang ringkas dibangun menggunakan blok te.TransformerLayer yang digabungkan, dan model PyTorch murni yang setara diimplementasikan untuk perbandingan. Model dilatih pada urutan pola aritmetika sintetis yang deterministik, dengan autocast FP8 bersyarat ketika didukung. Benchmarking mengukur latensi langkah rata-rata dan memori GPU puncak untuk mode BF16 dan FP8. Metadata FP8, termasuk faktor skala dan riwayat amax, diperiksa. Terakhir, pembangkitan autoregresif greedy memvalidasi bahwa model mempelajari langkah aritmetika, dan ekstensi seperti model yang lebih besar dan format FP8 alternatif disarankan.
Sumber: MarkTechPost —
asli
