Connectez un GPU à Raspberry Pi


15

Je veux connecter un GPU GT640 à un modèle Raspberry pi B. Je sais qu'il n'y a pas de connexion directe et les données de transfert sont très différentes mais. Est-il possible de connecter ces appareils afin de profiter de la puissance de traitement du GPU? n'est pas nécessaire d'avoir une communication en temps réel, mais est-ce possible en théorie?


Je prévois d' utiliser MCS9990 (contrôleur hôte PCIe vers USB 2.0 à 4 ports) pour créer une carte qui connecte le GT640 PCI 3.0 16x au RPi USB 2.0. Je pense que la seule difficulté est le pilote de cette puce mais j'ai le temps de la développer. Si j'implémente cela, qu'en est-il des autres logiciels (pilote CUDA et GForce) qui fonctionnent au-dessus du pilote de la carte?
Arturo Veras

J'ai trouvé une interface qui fera l'affaire. Il s'agit d'un contrôleur périphérique PCI Express Gen 2 vers USB 3.0 . Il comprend un port PCI Express Gen 2 x1 et un port client USB 3.0 SuperSpeed. Je sais que l'USB 3.0 prend également en charge l'USB 2.0: + USB Hi-Speed ​​( USB 2.0 ) 480 Mbit / s + USB SuperSpeed ​​( USB 3.0 ) 5 Gbit / s + External PCI Express 2.0 × 1 4 Gbit / s + External PCI Express 3.0 × 16 32 Gbit / s Je vais être limité par le port USB 2.0 Raspberry pi.
Arturo Veras

3
Ensuite, je vous suggère sérieusement d'éviter d'essayer de le faire
nagyben

La programmation des pilotes est très difficile, surtout quand c'est quelque chose qui n'a jamais été fait auparavant
nagyben

Le processeur principal du Raspberry Pi est déjà un GPU basé sur VideoCore IV.
Erkin Alp Güney

Réponses:


3

presque impossible.

vous feriez mieux d'essayer d'utiliser une boîte PC bon marché à la place, car il y a un risque très élevé de faire frire votre GT640 et / ou Raspberry Pi.


Pourquoi almos est-il impossible? Je pensais utiliser un chipset adaptateur PCIe vers USB comme MCS9901CV-CC, je veux essayer la voie inverse.
Arturo Veras

@ArturoVeras car ces appareils ne sont pas censés être connectés et / ou utilisés ensemble. sans parler des pilotes et des logiciels manquants que vous avez à écrire, les performances seraient épouvantables, ce qui rendrait l'ensemble de l'effort théorique.
lenik

Peut-être que je manque le point. Corrigez-moi si je me trompe, l'idée est de connecter la framboise, en quelque sorte, à un GPU. Plus tard, nous pouvons faire un cluster avec cela et avoir plus de puissance de processus. L'idée n'est pas de profiter de la vitesse de transmission PCIe au lieu des GPU mille cœurs. Donc, si je peux communiquer, en utilisant une puce GPIO oa comme MCS9901CV, il y aura beaucoup parce que cela signifie que je peux ajouter plus de Raspberry pi et faire un cluster et le tour est joué!.
Arturo Veras

1
@ArturoVeras avez-vous réussi à connecter un processeur plus simple au RaspPi GPIO et à communiquer raisonnablement avec lui? Je suis d'accord avec lenik, c'est une tâche extrêmement difficile (étudiez d'abord l'architecture PCIe et la communication GPU) et l'avantage est très faible. Peut-être qu'en tant qu'exercice, essayez d'abord de communiquer avec le GPU connecté directement au bus PCIe de votre PC.
ssavec

Non je ne sais pas. J'étudie le protocole PCIe et vois si je peux communiquer avec le GPIO Raspberry pi. Que pensez-vous de l'utilisation d'un PE4L-PM060A ?, Est un adaptateur PCIe à mPCIe. Je remarque que l'interface PCI 1x ne réduit que la bande passante PC1 16x, cela ne me dérange pas. Ce genre de choses peut m'aider car je peux utiliser une carte de développement dotée d'une interface mPCIe.
Arturo Veras

3

Ce serait possible, mais sachez que vous devrez écrire vos propres pilotes et régler les problèmes d'alimentation, car je doute que le RasPi puisse alimenter seul un GPU PCI / PCI-E complet. Veuillez également garder à l'esprit que le processeur affectera également la puissance du GPU, il peut donc être judicieux de rechercher avant d'essayer. <--- En plus de cela, vous pouvez utiliser un câble élévateur alimenté 1x à 16x couramment utilisé dans les plates-formes minières GPU. Il existe d'autres câbles de montage alimentés qui utilisent également des cartes d'adaptateur pour USB.


C'est ma préoccupation en ce moment, les problèmes de pouvoir. Quels sont les problèmes que j'ai à l'esprit si je veux utiliser une alimentation externe pour le GPU?
Arturo Veras

1

Vous pouvez utiliser un startKIT qui a un emplacement pour carte PCI Express x1 que vous pouvez utiliser pour vous connecter à un GPU approprié (vous devrez probablement écrire vos propres pilotes), et cela pourrait ensuite s'interfacer avec le Pi via l'en-tête GPIO.

Donc en bref: oui vous pouvez, tout le matériel pour le faire existe et est facilement disponible, tout ce que vous avez à faire est d'écrire une logique de collage, mais ne vous attendez pas à ce que ce soit facile.


Peut-être connecter le GPIO à PCIe avec un MCS9901?
Arturo Veras

Le startKIT ajoute seulement une interface matérielle entre PCIe et de RPi? Les pilotes que vous mentionnez doivent être écrits dans le startKit ou dans le RPi? Quelle est la difficulté de programmer un pilote?
Arturo Veras

Très difficile probablement. Je ne suis pas vraiment sûr de la faisabilité, mais en théorie avec le startKIT, vous aurez le matériel et l'environnement nécessaires pour faire ce que vous voulez.

1
Que pensez-vous de l' USB 2380 ? Cela semble être la solution, le seul problème est que GT640 est 16x PCIe et USB 2380 est pour 1x PCIe, mais je pense que ce n'est pas du tout un problème.
Arturo Veras

@ArturoVeras Difficile à dire sans avoir accès aux détails du produit, mais il semble que cela devrait être possible, mais attendez-vous à ce que ce soit difficile. De plus, vous ne pourrez probablement pas obtenir la pleine utilisation de la puissance des cartes quand il a le Pi comme hôte.

1

Donc, pour réveiller le fil mort, je ne le ferais pas personnellement sur un Raspberry Pi. Je recommanderais au moins le Pi 3 avec un adaptateur mPCIe vers PCIe conçu pour le GPU de bureau et alimenté par une alimentation dédiée. Vous devez également vous assurer que la version de Linux prend en charge les pilotes; s'il n'y a pas de pilotes, quelqu'un doit les écrire, et cela peut prendre des mois avec les bons actifs et le bon code source. Il est possible à 100% de le faire de cette façon, mais vous devrez probablement avoir assez de talent pour l'écrire pour la communauté si cela n'a pas déjà été fait.


Bien sûr, tous les pilotes Linux que NVidia publiera vont cibler le matériel de type PC - je ne peux pas croire que l'OP va pouvoir obtenir le débit de données pour faire quelque chose d'utile, au lieu de FPS (images par seconde) même en supposant qu'il puisse obtenir n'importe quelle sortie d'affichage utile, je parie que cela serait mesuré en FPM ou PFH! 8-)
SlySven

De plus, NVidia ne distribue que des binaires fermés plutôt que des pilotes de code open source (de la même manière que nous n'obtenons que les blobs binaires qui sont utilisés sur le RPi pour faire fonctionner le GPU), ce qui rend le développement de pilotes beaucoup, beaucoup plus difficile, voire impossible ... IMHO .
SlySven

Cela est également vrai et doit être pris en compte. Tout code que vous pouvez trouver et faire de l'ingénierie inverse pour le pi 3 doit être apprécié. Il faudra probablement une équipe de hackers éthiques ou quelques entreprises pour se réunir pour créer une solution. Dans les deux sens, ce serait intéressant et drôle à voir.
Robschwab1

0

Un autre problème que vous rencontrez est que le processeur goulot d'étranglement de la carte graphique car elle est cadencée à seulement 700 MHz. J'essaierais cela avec une GT 210 beaucoup moins chère (que vous pouvez trouver pour 20 $ - 30 $). En ce qui concerne vos pilotes, vous pouvez trouver les pilotes Nvidia open source et les compiler sur ARM.


Quel est le problème spécifique avec cela? J'ai juste besoin de calculs à partir du GPU, je n'ai pas besoin d'applications en temps réel.
Arturo Veras

Et cette carte? Ordinateur monocarte SBC-A510 . Il dispose d'un processeur 800 MHz et apporte un emplacement PCIe 1x.
Arturo Veras

0

Je suis juste tombé sur un vieux fil. C'est presque impossible, mais la raison principale est le capitalisme et la bureaucratie, pas l'écriture de chauffeurs.

Bien sûr, écrire des pilotes est très difficile, mais travaillez avec une équipe épique et ce serait fait avant le lever du soleil.

Il serait encore plus difficile d'accéder aux codes source existants pour la carte vidéo entière et peut-être même aux codes source pour le BCM2835, BCM2836 ou BCM2837 (Pi 1, 2 et 3 respectivement). Vous en avez besoin pour apprendre comment les cartes fonctionnent à l'intérieur et trouver un moyen de les interfacer les unes avec les autres.

Il faudrait être un OEM pour avoir une chance d'obtenir les codes sources. Même la fondation Raspberry Pi elle-même a eu des problèmes avec ceux-ci et doit se contenter d'un blob pré-compilé pour s'interfacer avec le processeur et le GPU.

Les besoins en énergie ne seraient pas du tout un problème car, au moment où vous suppliez [nom de l'entreprise], vous l'auriez déjà compris. Probablement un PC PSU connecté à la carte vidéo et alimentant également le Pi via son rail 5V.


0

Le MCS9990 est un pont PCIe vers USB / ISA, conçu pour fournir des ports USB / ISA / GPIO supplémentaires sur un système avec interface PCIe. Il ne peut pas être utilisé pour connecter un périphérique PCIe à un système qui ne dispose que d'USB, tel qu'un RPi. Cette approche est donc vouée à l'échec dès le départ.


-1

Votre seul problème sera les pilotes. Ce serait tellement cool de faire fonctionner un GPU Nvidia sur un Pi, mais c'est presque aussi difficile que de créer votre propre GPU à partir de zéro.

Les gens ont raison, le matériel n'est pas impossible, mais ce sera sommaire. Cependant, vous aurez absolument besoin de pilotes. Même si vous pouviez écrire les vôtres, ils ne seraient pas optimisés pour utiliser tout à la vitesse et aux fonctionnalités du GPU.

Je voulais essayer cela avec un ancien Nvidia GForce, mais je suis un mauvais programmeur sans expérience de piratage matériel.

Je pensais que c'était un long plan, mais j'ai envoyé un e-mail à NVidia juste après la sortie du RTX, et leur ai demandé s'ils compileraient les pilotes pour quelques GPU pré-2010 pour le Pi et les rendraient disponibles pour télécharger et bricoler, ou publier le code source pour que les gens se compilent. De toute évidence, ils ont dit «non».

Alors voilà, nous avons des GPU externes pour les ordinateurs portables ( coûts non pris en compte ) et le Wi-Fi dans le nouveau Pi 3B + est censé être rapide, pourquoi ne pas voir si cela pourrait fonctionner?


Je ne sais pas si cela fournit une réponse ou une suggestion, bien qu'utile.
Greenonline

@ Greenonline Cela devait être une suggestion et une réponse (Relire la dernière phrase)
lockheed silverman
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.