RNN accélérées par GPU : une implémentation CUDA de minGRU et minLSTM
Cet article de blog détaille un projet final pour le cours CS179 : Programmation GPU du Caltech, qui vérifie les affirmations de l’article de Feng et al., « Were RNNs All We Needed ? ». Le projet a implémenté des modèles minGRU et minLSTM simplifiés et un algorithme de balayage parallèle CUDA personnalisé. Les résultats ont montré des accélérations significatives du GPU pour les longues séquences, validant la principale découverte de l’article selon laquelle la récurrence RNN peut être parallélisée. Cependant, pour les courtes séquences, la surcharge de lancement du noyau CUDA a annulé certains gains de performances. Le profilage du noyau GPU a révélé la couche de projection finale comme étant le principal goulot d’étranglement, suggérant une optimisation supplémentaire par le biais d’un seul appel cuBLAS GEMM.