Apple

Choix de GPU – La revue Mac Pro (fin 2013)

Par Maximus63 , le 28 juin 2019 - 9 minutes de lecture

Choix de GPU

Apple moderne est un grand fan de puissance GPU. C’est vrai, qu’il s’agisse de téléphones, tablettes, ordinateurs portables ou, plus récemment, d’ordinateurs de bureau. Le nouveau Mac Pro ne fait pas exception à la règle puisqu'il s'agit du premier Mac de l'histoire Apple à être livré avec deux GPU par défaut.

AMD a remporté le contrat cette fois-ci. Le nouveau Mac Pro est fourni avec une paire de GPU identiques à FirePro, dérivés de Pitcairn, Tahiti LE ou Tahiti XT. Il s’agit de GPU 28 nm Graphics Core Next 1.0. Ce n’est donc pas la toute dernière technologie d’AMD, mais la plus récente de ce que vous trouverez sous un nom FirePro.

Les numéros de modèle sont uniques à Apple. FirePro D300, D500 et D700 sont les trois seules options disponibles sur le nouveau Mac Pro. Le D300 est basé à Pitcairn, le D500 semble utiliser un Tahiti LE avec un bus de mémoire plus large de 384 bits, tandis que le D700 est un Tahiti XT complet. J'ai jeté les spécifications dans le tableau ci-dessous:

Mac Pro (fin 2013) Options GPU

AMD FirePro D300

AMD FirePro D500

AMD FirePro D700

SP

1280

1536

2048

Horloge GPU (base)

800 MHz

650 MHz

650 MHz

Horloge GPU (boost)

850 MHz

725 MHz

850 MHz

GFLOPS simple précision

2176 GFLOPS

2227 GFLOPS

3481 GFLOPS

GFLOPS Double Précision

136 GFLOPS

556.8 GFLOPS

870.4 GFLOPS

Unités de texture

80

96

128

ROPs

32

32

32

Nombre de transistors

2,8 milliards

4,3 milliards

4,3 milliards

Interface mémoire

GDDR5 256 bits

GDDR5 384 bits

GDDR5 384 bits

Mémoire de données

5080 MHz

5080 MHz

5480 MHz

Bande passante mémoire maximale du processeur graphique

160 Go / s

240 Go / s

264 Go / s

Mémoire GPU

2 Go

3 Go

6 Go

Coût de mise à niveau Apple (configuration de base)

+ 400 $

+ 1000 $

Coût de mise à niveau Apple (configuration haut de gamme)

+ 600 $

Malgré la marque FirePro, ces GPU ont au moins certaines fonctionnalités en commun avec leurs homologues Radeon de bureau. Les GPU FirePro sont livrés avec une mémoire ECC. Toutefois, dans le cas des FirePro D300 / D500 / D700, ECC n’est pas activé sur les mémoires du GPU. De même, CrossFire X n’est pas pris en charge par FirePro (au lieu de cela, vous obtenez CrossFire Pro), mais dans le cas des cartes Dx00, vous bénéficiez du support CrossFire X sous Windows.

Chaque GPU reçoit une interface PCIe 3.0 x16 complète avec le processeur Xeon via un connecteur haute densité personnalisé et un câble souple au bas de chaque carte GPU du Mac Pro. Je pense que Apple a également intégré la prise en charge du pont CrossFire X via ce câble.

Avec deux GPU standard dans chaque configuration Mac Pro, il est évident que la configuration est supportée par le système d’exploitation. Sous Windows, cela équivaut à la prise en charge de base de CrossFire X. Les pilotes Boot Camp d’Apple sont livrés avec le support CFX. Vous pouvez télécharger les derniers pilotes Catalyst directement à partir d’AMD et activer CFX sous Windows. J'ai réalisé ce dernier et constaté que malgré l'option, je ne pouvais pas désactiver CrossFire X sous Windows. Désactiver CFX réduirait la consommation d'énergie, mais je ne voyais pas toujours de baisse correspondante des performances.

Sous OS X, la situation est un peu plus compliquée. Il n’existe pas d’équivalent CrossFire X à l’échelle du système qui divise automatiquement les tâches de rendu entre les deux GPU. Par défaut, un GPU est configuré pour les tâches d'affichage, tandis que l'autre est utilisé exclusivement pour les charges de travail de calcul du GPU. Les GPU sont notoirement mauvais pour la commutation de contexte, ce qui peut sérieusement limiter les performances de calcul si le GPU doit également gérer les charges de travail de rendu associées à l'affichage dans un système d'exploitation moderne. NVIDIA cherchait à résoudre un problème similaire avec sa technologie Maximus, en combinant les cartes Quadro et Tesla dans un seul système d’affichage et de calcul.

En raison de la nature de la division de GPU par défaut sous OS X, tous les jeux n’utiliseront par défaut qu’un seul GPU. Il appartient au développeur de jeux de reconnaître et de scinder le rendu entre les deux GPU, ce que personne ne fait actuellement. Malheureusement, l'activation de deux instances d'une charge de travail 3D ne permet pas d'équilibrer la charge entre les deux GPU par défaut. J'ai exécuté des repères Unigine Heaven et Valley en parallèle. Malheureusement, les deux étaient programmés sur le processeur graphique d'affichage, ce qui a laissé le processeur graphique complètement au repos.

La même chose est vraie pour les applications professionnelles. Par défaut, un seul GPU est utilisé pour les charges de travail de calcul. Cependant, comme dans le cas des jeux, des applications peuvent être écrites pour répartir les charges de calcul sur les deux GPU s’ils ont besoin de la puissance requise. La dernière mise à jour de Final Cut Pro (10.1) est un exemple d'application spécialement conçue pour tirer parti des deux GPU dans les tâches de calcul.

La question de savoir quel GPU choisir est difficile. Il existe des différences de performances substantielles entre toutes les options. Le D700, par exemple, offre 75% de plus de calculs à simple précision que le D300 et 56% de plus que le D500. Tous les GPU ont le même nombre de moteurs de rendu, donc ils devraient tous être capables de gérer un écran 4K. Dans de nombreuses applications professionnelles, le plus gros pilote pour les options de GPU haut de gamme sera probablement les plus grandes configurations de VRAM.

J'ai été particulièrement surpris par la quantité de mémoire vidéo que Final Cut Pro semblait occuper sur le GPU principal (non-calcul). J'ai mesuré plus de 3 Go d'utilisation de la mémoire vidéo sur un écran 1080p en éditant du contenu 4K. Le D700 est la seule configuration proposée par Apple avec plus de 3 Go de mémoire vidéo. Je ne sais pas exactement comment l'expérience se dégraderait si vous en aviez moins, mais lancer davantage de VRAM sur le problème ne semble pas être une mauvaise idée. L’utilisation de la mémoire du GPU de calcul est très limitée (évidemment) jusqu’à ce que le GPU soit réellement utilisé. OS X a signalé une utilisation d'environ 8 Go en mode veille, ce qui, je le suppose, est un bogue et un moyen rétrograde de dire qu'aucune mémoire n'a été utilisée. Sous une charge de calcul du GPU (rendu des effets dans FCP), j'ai vu utiliser environ 2 Go de mémoire sur le GPU de calcul.

Puisque Final Cut Pro 10.1 semble être une application phare pour la configuration CPU + GPU du Mac Pro, j’ai fouillé un peu pour voir comment les trois processeurs distincts sont utilisés dans l’application. Le rendu de base se produit toujours sur la CPU. Avec le contenu 4K et les bons effets, je vois 20 à 21 threads utilisés, ce qui limite presque tous les cœurs et les threads disponibles. Je pense toujours que la version à 8 cœurs peut être un choix légèrement meilleur si vous êtes préoccupé par le coût, mais c'est une supposition de ma part puisque je n'ai pas une tonne de projets 4K FCP 10.1 à profiler. L'avantage évident de la version à 12 cœurs est que vous obtenez plus de performances lorsque la charge de travail le permet et que, dans le cas contraire, vous obtenez un système plus réactif.

L'aperçu en direct du contenu qui n'a pas encore été rendu est également lié au processeur. Je ne vois pas d’utilisation substantielle des calculs GPU ici, et il en va de même pour le processeur. Le balayage et la lecture de contenu non restitué semblent utiliser entre 1 et 3 cœurs de processeur. Même si vous appliquez des effets vidéo au projet, cette opération, avant le rendu, constitue principalement une charge de travail de la CPU, le GPU non-calculant (affichage) passant quelques cycles.

C’est au moment de rendre des effets visuels que le GPU de calcul prend son envol. Le rendu / transcodage vidéo, comme je l’ai mentionné plus tôt, reste une affaire liée au processeur, mais tous les rendus du rendu ont lieu sur les GPU. La charge de travail du processeur graphique augmente en fonction du nombre d'effets superposés. Le rendu des effets semble s'étendre sur les deux GPU, le GPU de calcul assumant l'essentiel de la charge de travail dans certains cas et dans d'autres, les deux semblant plus équilibrés.


Chargement du GPU lors de l'exécution de ma charge de travail 4K CPU + GPU FCP 10.1

La répartition du travail de Final Cut Pro entre le processeur et les processeurs graphiques illustre bien ce que vous devez voir se produire à tous les niveaux si vous souhaitez obtenir d’importants gains de performances. Si vous n'êtes pas lié par les performances de stockage et souhaitez augmenter les performances à plus de deux chiffres, vos applications devront tirer parti de l'informatique GPU pour obtenir des accélérations significatives. Il existe quelques exceptions (par exemple, l’utilisation de matériel AVX dans les cœurs de processeur), mais la plupart du temps, c’est cette approche hétérogène qui doit se produire. Ce que nous avons vu de FCP nous montre que la solution ne viendra pas sous la forme d’une performance du processeur n’importe plus, et de la performance d’un GPU qui nous tient à cœur. Une partie importante de mon flux de travail dans Final Cut Pro est toujours liée au processeur, le GPU est utilisé pour accélérer certains composants de l'application. Vous avez besoin du meilleur des deux pour construire des systèmes performants et performants.