- Library untuk menjalankan perkalian matriks FP8 (GEMM) secara efisien, serta mendukung metode fine-grained scaling yang diusulkan di DeepSeek-V3
- Mendukung baik GEMM umum maupun GEMM terkelompok Mix-of-Experts(MoE)
- Diimplementasikan berbasis CUDA, dan saat instalasi menggunakan modul Just-In-Time (JIT) ringan untuk mengompilasi kernel saat runtime tanpa kompilasi terpisah
- Saat ini hanya mendukung khusus NVIDIA Hopper Tensor Core
- Menggunakan akumulasi ganda (promotion) berbasis CUDA core untuk melengkapi operasi akumulasi FP8 tensor core yang kurang akurat
- Memanfaatkan sebagian konsep dari CUTLASS dan CuTe, tetapi dengan mengurangi ketergantungan template yang kompleks sehingga memiliki desain sederhana yang hanya mencakup sekitar 300 baris kode kernel
- Cocok untuk mempelajari operasi matriks Hopper FP8 dan teknik optimisasi
- Meski desainnya ringan, pada berbagai ukuran matriks ia menunjukkan performa yang setara atau lebih baik dibanding library yang dituning di tingkat ahli
Evaluasi performa
Performa GEMM umum (model dense)
- Dilakukan evaluasi performa di lingkungan inferensi DeepSeek-V3/R1 untuk berbagai ukuran matriks
- Diuji pada lingkungan NVIDIA H800 GPU (NVCC 12.8)
- Metrik speedup dihitung dengan membandingkan terhadap versi optimisasi internal berbasis CUTLASS 3.6
- Ringkasan performa utama
- Pada ukuran matriks kecil, peningkatan kecepatan hingga 2,7x
- Pada beberapa ukuran matriks besar, mempertahankan performa di kisaran 1,0~1,2x
- Dengan mengoptimalkan bandwidth memori dan performa komputasi, ia memberikan performa yang dioptimalkan untuk arsitektur Hopper
Performa GEMM terkelompok untuk model MoE
- GEMM terkelompok dengan layout contiguous
- Dikelompokkan berdasarkan sumbu M, sementara N dan K tetap sama
- Menunjukkan peningkatan kecepatan hingga 1,2x, dan pada konfigurasi tertentu bertahan di level 1,1x
- GEMM terkelompok dengan layout masked
- Dirancang untuk kasus saat CPU tidak dapat mengetahui jumlah token tiap expert ketika menggunakan CUDA Graph
- Menyediakan tensor mask sebagai input sehingga hanya menjalankan operasi yang diperlukan
- Besaran peningkatan performa berada di kisaran 1,1x~1,2x
Belum ada komentar.