Est-ce que M.2 NVMe ou le graphique intégré ralentira les cartes graphiques discrètes

2

Je suis sur le point de construire une machine Linux pour Deep Learning. Parties pertinentes:

  • ASRock Z270 KILLER SLI / AC
  • Core i7 7700
  • 2x GTX 1060
  • 1 To M.2 Evo 850 NVMe SSD

Deep Learning implique l'exécution d'algorithmes basés sur CUDA pendant plusieurs jours sur le GPU et la transmission d'un grand nombre de données entre GPU / CPU / SSD. Les goulots d'étranglement vont s'additionner.

Je suis donc préoccupé par les voies PCIe. Si je comprends bien, le processeur n'en a que 16. D'après ce que j'ai compris, 8 voies sont suffisantes pour le GPU mais 4x peut voir un certain ralentissement. (Au début, je craignais que le SSD NVMe prenne des voies, mais il semble que le processeur dispose de 4 voies IO supplémentaires.)

Est-il préférable d'utiliser les graphiques intégrés pour l'interface utilisateur de bureau, de laisser les 2 GPU pour le calcul, ou est-ce que les graphiques intégrés créeront un goulot d'étranglement (force 8x 4x 4x, vs 8x voies pour GPU) pour les GPU (ce qui signifie peut-être que je devrais désactiver intégré et partager 1 GPU avec une interface utilisateur de bureau).

Mon objectif est d’obtenir le maximum de performances des GPU. S'il y a des goulots d'étranglement, je veux savoir si cela peut entraîner une différence de performance supérieure à 5%, soit 8 heures multipliée par semaine d'utilisation du processeur graphique

AwokeKnowing
la source
"Je souhaite savoir s'il peut entraîner une différence de performances supérieure à 5%, soit 8 heures multipliées par semaine d'utilisation du processeur graphique". Ce n'est pas ainsi que se mesurent les nœuds de performances. Il n’ya pas assez de bande passante PCI-E sur le matériel que vous décrivez de toute façon.
Ramhound
@Ramhound vous pouvez expliquer, mais rappelez-vous, il est question de laisser les GPU calculer un problème de données intensives qui prend littéralement plus d'une semaine pour calculer et traiter les données et envoie constamment des données à la CPU.
AwokeKnowing

Réponses:

1

TLDR:

Est-ce que M.2 NVMe ou le graphique intégré ralentira les cartes graphiques discrètes

Dans ce cas précis probablement pas.


Deep Learning consiste à exécuter des algorithmes basés sur CUDA pendant plusieurs jours   le GPU, et la canalisation beaucoup de données entre GPU / CPU / SSD.   Les goulots d’étranglement s’ajouteront.

Je n'ai aucune expérience de CUDA, mais d'après ce que je me souviens d'avoir lu dans des articles, le principal problème des calculs sur GPU n'est généralement pas la vitesse de transfert brute. Au lieu de cela, c'est la latence.

Occupez-vous du «habituellement». Pour un programme spécifique, les choses pourraient être très différentes.

La latence dépend en partie de la vitesse PCI-e. Les connexions PCI-e v3 peuvent fonctionner à des débits plus élevés que les voies PCI-e v2 (8 GHz vs 5 GHz). Donc, vous voulez que vos cartes avec GPU sur les voies v3.

En regardant ark.intel.com, cela montre que le Core i7 7700 dispose de 16 voies PCI-e provenant directement de la CPU. (Plus peut provenir du chipset).

Les lignes PCI-e connectées directement à la CPU sont PCI-e v3 et peuvent être utilisées comme 1x16, 2x8, 1x8 + 2x4. Je suppose que pour faire CUDA avec deux cartes graphiques distinctes, vous voulez utiliser deux slots, chacun utilisant 8 voies.

Je suis donc préoccupé par les voies PCIe. Si je comprends bien, le processeur n'en a que 16.

Correct.

D'après ce que j'ai compris, 8 voies sont suffisantes pour le GPU mais 4 fois peuvent en voir   ralentissez.

En quelque sorte, oui. La plupart du temps, la vitesse du bus PCI0-e a dépassé les besoins des cartes graphiques. Cela change avec le temps. Les GPU deviennent plus rapides. Ceux haut de gamme commencent à pousser la bande passante maximale. Les versions PCI-e sont mises à niveau ...

Habituellement, une carte graphique haut de gamme en contient assez avec environ 8 voies. Le matériel de Toms a fait des tests à l’ère PCI-e v2 et je pense que ses résultats sont valables pour les configurations modernes dotées de cartes graphiques modernes sur PCI-e v3:

x16: vitesse maximale.
x8: quelques% de perte de vitesse (disons 2-5%)
x4: fonctionne toujours bien pour la plupart des choses. Il suffit de ne pas placer une carte GPU double haut de gamme dans un emplacement x4 et d’exécuter un affichage 4k avec tous les paramètres de jeu maximisés.

(Au début, je craignais que le SSD NVMe prenne des voies, mais il semble que le processeur dispose de 4 voies IO supplémentaires.)

Ça n'a pas. Les puces grand public actuelles d’Intel sont plutôt peu nombreuses. Pas plus que cela la plupart des besoins de leur public cible. C’est une décision économique saine.

Leur gamme Xeon comprend des unités centrales avec davantage de lignes PCI-e. Comme certaines des nouvelles puces AMD (64 lignes PCI-e sur le processeur ThreadRipper d'AMD. Deux fois plus que sur les produits de serveur)

Au lieu votre carte mère a la Chipset Z270 qui fournit des lignes PCI-e supplémentaires.

Le chipset supporte ces configurations x1, x2, x4.

Avec un maximum de x4, il semble que 2x8 du processeur reste le meilleur pari pour CUDA.

La carte mère utilise une grande partie des pistes restantes pour les connexions SATA, USB, réseau, etc. Quatre d'entre elles sont disponibles pour les utilisateurs finaux via 4 connecteurs d'extension PCIe 3.0 x1. Ne mettez pas les cartes graphiques dans ceux-ci!

En ce qui concerne NVME: les cartes disposent de deux emplacements PCIe Gen3 x4 Ultra M.2. Le http://asrock.nl/downloadsite/Manual/Z270%20Killer%20SLIac.pdf">manual de ce forum mentionne:

* If M2_1 is occupied by a SATA-type M.2 device, SATA_5 will be disabled.  
* If M2_2 is occupied by a SATA-type M.2 device, SATA_0 will be disabled.

Je n'ai repéré aucun des problèmes habituels "Si M.2 est utilisé avec un périphérique NVME, alors ...", ce qui signifie qu'il dispose probablement de pistes dédiées à partir du chipset.

Est-ce que je laisse les 2 GPU pour le calcul, ou est-ce que le graphique intégré va créer   un goulot d'étranglement (force 8x 4x 4x, vs 8x 8x voies pour GPU) pour les GPU   (ce qui signifie peut-être que je devrais désactiver intégré et partager 1 GPU avec une interface utilisateur de bureau).

Je ne vois aucune raison pour laquelle les graphiques intégrés devraient vous gêner. Je ne soupçonne pas de problèmes si vous le désactivez. Avoir une machine en train de faire des calculs pourrait même être fait sans graphiques (SSH uniquement)

Avoir deux cartes graphiques dédiées aux calculs et les graphiques intégrés pour le reste (par exemple, un écran simplement termina) me semble le plus propre. Mais ce n'est pas tout ce que je peux quantifier.

Mon objectif est d’obtenir le maximum de performances des GPU. S'il y a des goulots d'étranglement,   Je veux savoir si cela peut causer plus de 5% de différence de performances,   soit 8h multiplié par semaine d'utilisation du processeur graphique

Le meilleur conseil à ce sujet est de mesurer ce que fait votre système. Si possible, passé une semaine avec en mode test. Exécutez-le avec les deux cartes en x8. Mesure. Utilisez un logiciel pour rétrograder les lignes PCI-e à x4. Vérifiez combien de performances sont perdues. Si la valeur est inférieure à 1%, essayez avec une carte à x16 et une carte dans un emplacement x1. Je devine que 2 * x8 sera beaucoup mieux, mais je peux me tromper.

Faites des choses similaires avec d'autres paramètres. Par exemple. essayez de courir sans hypertreading. (HT on est généralement plus rapide de 30%, mais parfois cela ralentit réellement les choses, alors testez.) Essayez de désactiver l'économiseur d'énergie. etc.

Après quelques jours de tests avec quelques tests différents, la production est exécutée.

Hennes
la source
Extrêmement minutieux, espérons que cela aidera les autres aussi. Vous avez en quelque sorte passé sous silence les graphiques intégrés. Est-ce que ceux-ci utilisent des voies PCI? y a-t-il un moyen de le savoir?
AwokeKnowing
Je ne sais pas comment ils sont connectés, mais je n’ai jamais eu moins de lignes PCI-e externes lorsque je les utilisais.
Hennes