NVIdia dévoile CUDA 6 et son support de la mémoire unifiée

La dernière mouture de l'API de programmation des GPU NVIdia apporte le support de la mémoire unifiée ainsi qu'un mécanisme de libraires enfichables pour accélérer certaines opérations

Alors que NVidia vient de sortir discrètement son premier accélérateur graphique basé sur son architecture Maxwell, la firme met à jour le SDK de CUDA en version 6, préparant ainsi le terrain à la pleine utilisation des capacités de gestion de la mémoire unifiée de ses nouveaux accélérateurs.

Maxwell, dont NVidia avait parlé l’an passé lors de sa GPU Technology Conference, devrait non seulement afficher des performances en hausse, mais aussi une consommation en très nette baisse. L’un de ses grands points forts pour les applications de calcul sera le support de la mémoire unifiée, à savoir la capacité pour le GPU d’accéder à l’espace de mémoire vive de l’ordinateur (jusqu’alors les GPU NVidia n’ont que la capacité d’accéder à la mémoire de GPU NVidia sur d’autres noeuds, via la technologie GPU Direct du constructeur – en s’appuyant sur les capacités RDMA des cartes Ethernet modernes).

La version 6 de CUDA, supporte elle aussi la mémoire unifiée et permet aux applications tirant parti de l’API d’accéder à la mémoire du GPU sans avoir besoin de copier préalablement les données depuis la mémoire vive de l’ordinateur. La capacité de mémoire unifiée de Cuda 6 permet de créer un pool de mémoire qui est partagé entre CPU et le GPU en utilisant un pointeur mémoire unique. Le point clé est que le système migre automatiquement les données entre l’hôte et la carte, de telle sorte que pour un code tournant sur le CPU, la mémoire semble être gérée comme de la mémoire vive et que pour le GPU la mémoire apparaît comme une page mémoire GPU. L’architecture Maxwell de NVidia, en supportant d’emblée la mémoire unifiée au niveau matériel (via un mécanisme baptisé Unified Virtual Memory), devrait encore améliorer les performances. En quelque sorte, les capacités de mémoire unifiée de Cuda 6 préparent le terrain pour les capacités de mémoire unifiée de Maxwell.

Parmi les autres nouveautés de CUDA 6, notons aussi le support de librairies enfichables (« drop-in libraries ») permettant d’accélérer certaines opérations, dont des librairie BLAS (Basic Linear Algebra Subprograms) et FFT(Fast Fourier Transform ou transformée de fourier rapide).

 

 

Pour approfondir sur HPC