Je regardais récemment une excellente vidéo Computerphile sur les mots de passe dans laquelle Mike Pound se vante du supercalculateur de son entreprise 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?
Réponses:
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.
quel article devrais-je me préoccuper davantage? Cela dépend vraiment de la charge de travail dont vous vous souciez 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èle de calculs simples embarrassant 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).
la source
Consultez https://developer.nvidia.com/cuda-zone (et google cuda nvidia pour 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...
... cuda est de loin le meilleur jeu en ville pour vous. Essayez peut-être de demander à nouveau dans /scicomp// 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.)
la source
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.
En route 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 de déplacement des données dans et hors 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:
la source