La transformée de Fourier rapide (FFT) est une méthode essentielle en traitement du signal, utilisée pour accélérer les convolutions, extraire des caractéristiques et régulariser les modèles. La transformée de Fourier rapide distribuée (Distributed FFT) permet de calculer des transformées de Fourier sur des modèles travaillant avec des ensembles de données volumineux, similaires à des images, qui ne tiennent pas dans la mémoire d'un seul accélérateur. Auparavant, un algorithme de FFT distribuée avait été implémenté pour TensorFlow v1, mais ce travail introduit une prise en charge native dans TensorFlow v2 grâce à l'API de distribution DTensor, une extension pour le calcul distribué synchrone qui utilise une approche Single Program, Multiple Data (SPMD). L'interface API pour la FFT distribuée est identique à celle de la FFT originale dans TensorFlow, ce qui facilite son utilisation par les développeurs. Les utilisateurs doivent simplement passer un tenseur fragmenté en entrée aux opérations FFT existantes dans TensorFlow, comme tf.signal.fft2d, et la sortie devient également fragmentée. L'analyse des performances montre que la FFT distribuée peut traiter plus de données que la FFT non distribuée en utilisant la mémoire de plusieurs dispositifs, bien que cela implique un temps supplémentaire pour la communication et les transposées de données, ce qui ralentit la vitesse de calcul. La mise en œuvre actuelle de la FFT distribuée dans TensorFlow suit la méthode simple de shuffle+FFT locale, utilisée également par d'autres bibliothèques populaires de FFT distribuée comme FFTW et PFFT. Les expériences ont été menées sur un système 8xV100 GPU, et les résultats montrent que les opérations FFT locales ne prennent que 3,6% du temps total, le reste étant consacré au shuffle des données. Plusieurs pistes sont envisagées pour améliorer les performances, comme l'adoption d'un algorithme DFT/FFT différent, l'optimisation des paramètres de communication NCCL, la réduction du nombre de collectifs pour minimiser les besoins en bande passante, et l'utilisation de FFT locales N-d plutôt que de multiples FFT locales 1-d.