web-dev-qa-db-fra.com

Pourquoi Mike Pound mesure-t-il la capacité de calcul de son ordinateur par ses cartes graphiques et non par ses processeurs?

Je regardais récemment ne excellente vidéo Computerphile sur les mots de passe dans laquelle Mike Pound se vante du supercalculateur de sa société ayant 4 cartes graphiques (Titan X, pour être exact).

En tant que passionné de simulation numérique, je rêve de construire un bureau uniquement pour le travail de simulation. Pourquoi Mike Pound mesure-t-il la capacité de calcul de son ordinateur par ses cartes graphiques et non par ses processeurs? Si je construisais un ordinateur, quel élément devrais-je me préoccuper davantage?

17
Ra31513

Mike Pound apprécie évidemment la capacité de calcul des cartes graphiques plus élevée que la capacité de calcul des CPU.

Pourquoi? Une carte graphique est essentiellement composée de NOMBREUX processeurs simplifiés qui fonctionnent tous en parallèle. Pour certains travaux de simulation, une grande partie du calcul peut être facilement parallélisée et traitée en parallèle sur les milliers de cœurs disponibles dans les cartes graphiques, ce qui réduit le temps de traitement total.

de quel élément dois-je me préoccuper davantage? Cela dépend vraiment de la charge de travail qui vous intéresse et de la façon dont cette charge de travail peut/est mise en parallèle pour une utilisation sur une carte graphique. Si votre charge de travail est un ensemble parallèlement embarrassant de calculs simples et que le logiciel est écrit pour tirer parti des cartes graphiques disponibles, alors plus de cartes graphiques auront un impact sur les performances beaucoup plus grand que plus de CPU (dollar pour dollar).

32
Maybe_Factor

Découvrez https://developer.nvidia.com/cuda-zone (et google cuda nvidia pour beaucoup plus d'informations) . L'architecture cuda et les cartes graphiques haut de gamme sont assez largement utilisées pour les supercalculateurs de bureau. Vous pouvez généralement assembler une boîte de plusieurs Tflop pour moins de 10 000 $ (USD) en utilisant des composants de boîte blanche prêts à l'emploi.

Donc...

En tant que passionné de simulation numérique, je rêve de construire un bureau uniquement pour le travail de simulation

... cuda est de loin le meilleur jeu en ville pour vous. Peut-être essayez de demander à nouveau dans https://scicomp.stackexchange.com/ ou un autre site Web stackexchange, plus directement impliqué dans ce genre de chose.

(Soit dit en passant, je suppose que vous êtes à l'aise avec l'idée que nous parlons de programmation massivement parallèle ici, donc vous devrez peut-être vous familiariser avec ce paradigme pour la conception d'algorithmes.)

5
John Forkosh

Si je construisais un ordinateur, quel élément devrais-je me préoccuper davantage?

D'un point de vue pratique, vous devriez probablement faire assez attention à la carte mère et au CPU étant donné la difficulté relative de mise à niveau par rapport au GPU. Après l'achat, c'est un moment horrible pour découvrir que vous n'avez pas d'espace pour quatre GPU ou un processeur assez rapide pour les occuper tous.

Vous devez également savoir que les performances du GPU sont le plus souvent signalées dans les FLOP à simple précision, et diminuent un peu pour la double précision. Si vous avez besoin d'une précision supplémentaire dans vos simulations, vous vous retrouverez bien en dessous de la vitesse annoncée.

Off pour les courses de génie logiciel

Il y a vraiment deux préoccupations principales d'un point de vue logiciel, le goulot d'étranglement Von Neumann et le modèle de programmation. Le CPU a un assez bon accès à la mémoire principale, le GPU a une grande quantité de mémoire plus rapide à bord. Il n'est pas inconnu que le temps que les données entrent et sortent du GPU annule complètement tout gain de vitesse. En général, le CPU est un gagnant pour le calcul modéré sur de grandes quantités de données tandis que le GPU excelle dans les calculs lourds sur de petites quantités. Tout cela nous amène au modèle de programmation.

À un niveau élevé, le problème est l'ancien et honorable débat MIMD/SIMD. Les systèmes à instructions multiples et à données multiples ont été les grands gagnants de l'informatique générale et commerciale. Dans ce modèle, qui inclut le SMP, il existe plusieurs processeurs exécutant chacun leur propre flux d'instructions individuel. C'est l'équivalent informatique d'une cuisine française, où vous dirigez un petit nombre de cuisiniers qualifiés pour effectuer des tâches relativement compliquées.

Les systèmes à instruction unique/à données multiples, d'autre part, ressemblent plus à une immense salle pleine de commis enchaînés à leurs bureaux suivant les instructions d'un contrôleur maître. "Tout le monde AJOUTE les lignes 3 et 5!" Il a été utilisé sous sa forme pure dans l'ILLIAC et certains systèmes "mini-super", mais a perdu sa place sur le marché. Les GPU actuels sont un proche cousin, ils sont plus flexibles mais partagent la même philosophie générale.

Pour résumer brièvement:

  • Pour une opération donnée, le CPU sera plus rapide, tandis que le GPU peut en exécuter plusieurs simultanément. La différence est plus apparente avec les flottants 64 bits.
  • Les cœurs de processeur peuvent fonctionner sur n'importe quelle adresse mémoire, les données du GPU doivent être regroupées dans une zone plus petite. Vous ne gagnez que si vous effectuez suffisamment de calculs pour compenser le temps de transfert.
  • Le code lourd en conditionnel sera généralement plus agréable sur le CPU.
2
Matthew Gauthier