Kernel proqramlaşdırması baxımından FlashAttention nədir?
sobes.tech Süni İntellekt
AI-dan cavab
FlashAttention CUDA kernelidir və transformatorlarda diqqət mexanizmini hesablamaq üçün optimallaşdırılmışdır, bu da hesablamaları əhəmiyyətli dərəcədə sürətləndirir və yaddaş istifadəsini azaldır.
Kernel proqramlaşdırması baxımından, FlashAttention GPU-da effektiv yaddaş idarəetməsi və paralelliyi istifadə edərək diqqət hesablamasını həyata keçirir. Əsas xüsusiyyətləri:
- Məlumatların müvəqqəti saxlanması üçün paylaşılan yaddaş bloklarından istifadə, bu da yavaş qlobal yaddaş çağırışlarını azaldır.
- Məlumatların minimal təkrarı ilə diqqət hesablaması.
- Rəqəmsal sabitliyi nəzərə alaraq softmax hesablamasının optimallaşdırılması.
- Bütün məlumatları eyni zamanda yaddaşa yükləməyə ehtiyac olmadan böyük ardıcıllıqları işləmək.
Bu, klassik tətbiqlərlə müqayisədə diqqəti daha sürətli və daha az yaddaş istifadə edərək həyata keçirməyə imkan verir, bu da böyük modellərin öyrədilməsi üçün kritikdir.
Məsələn, kernel açarları və sorğuları yükləyir, skalar hasilləri hesablayır, softmax tətbiq edir və dəyərlərlə vurur, qlobal yaddaş çağırışlarını minimuma endirmək və sürətləndirmək üçün paylaşılan yaddaşdan istifadə edir.