Schließen Sie eine GPU an Raspberry Pi an


15

Ich möchte eine GPU GT640 mit einem Raspberry Pi Modell B verbinden. Ich weiß, dass es keine direkte Verbindung gibt und die Übertragungsdaten sehr unterschiedlich sind, aber. Gibt es eine Möglichkeit, diese Geräte anzuschließen, um die Prozessorleistung der GPU zu nutzen? ist keine Echtzeitkommunikation erforderlich, aber ist dies theoretisch möglich?


Ich plane, MCS9990 (PCIe zu 4-Port USB 2.0 Host Controller) zu verwenden, um eine Karte herzustellen, die den GT640 PCI 3.0 16x mit dem RPi USB 2.0 verbindet. Ich denke, die einzige Schwierigkeit ist der Treiber dieses Chips, aber ich habe Zeit, ihn zu entwickeln. Wenn ich dies implementiere, was ist mit der anderen Software (CUDA- und GForce-Treiber), die auf dem Board-Treiber arbeitet?
Arturo Veras

Ich fand eine Schnittstelle, die die Arbeit erledigt. Es handelt sich um einen PCI Express Gen 2 to USB 3.0- Peripheriecontroller. Es verfügt über einen PCI Express Gen 2 x1-Port und einen USB 3.0 SuperSpeed-Client-Port. Ich weiß, dass USB 3.0 auch USB 2.0 unterstützt: + USB Hi-Speed ​​( USB 2.0 ) 480 Mbit / s + USB SuperSpeed ​​( USB 3.0 ) 5 Gbit / s + Externes PCI Express 2.0 × 1 4 Gbit / s + Externes PCI Express 3.0 × 16 32Gbit / s Ich werde durch den USB 2.0 Raspberry Pi Port eingeschränkt.
Arturo Veras

3
Dann schlage ich ernsthaft vor, Sie vermeiden, dies zu tun
Nagyben

Das Programmieren von Treibern ist sehr schwierig, besonders wenn es etwas ist, was noch nie zuvor gemacht wurde
nagyben

Der Hauptprozessor von Raspberry Pi ist bereits eine auf VideoCore IV basierende GPU.
Erkin Alp Güney

Antworten:


3

nahezu unmöglich.

Sie sollten stattdessen lieber eine billige PC-Box verwenden, da das Risiko sehr hoch ist, dass Ihr GT640 und / oder Raspberry Pi braten.


Warum ist Almos unmöglich? Ich dachte, ein PCIe-zu-USB-Adapter-Chipsatz wie MCS9901CV-CC zu verwenden, ich möchte den umgekehrten Weg versuchen.
Arturo Veras

@ArturoVeras, da diese Geräte nicht miteinander verbunden und / oder verwendet werden dürfen. geschweige denn die fehlenden Treiber und Software, die Sie schreiben müssen, die Leistung wäre miserabel, was das ganze Unternehmen in Frage stellt.
Lenik

Vielleicht verpasse ich den Punkt. Korrigieren Sie mich, wenn ich falsch liege. Die Idee ist, die Himbeere mit einer GPU zu verbinden. Später können wir damit einen Cluster erstellen und haben mehr Prozessleistung. Die Idee ist, nicht die Übertragungs-PCIe-Geschwindigkeit zu nutzen, sondern die tausend Kerne der GPUs. Also, wenn ich kommunizieren kann, mit GPIO oa Chip wie MCS9901CV, wird es großartig sein, weil das bedeutet, dass ich mehr Raspberry pi hinzufügen und einen Cluster und voila machen kann !.
Arturo Veras

1
@ArturoVeras haben Sie es geschafft, einen einfacheren Prozessor an das RaspPi GPIO anzuschließen und vernünftig damit zu kommunizieren? Ich stimme Lenik zu, dass es eine äußerst schwierige Aufgabe ist (zuerst die PCIe-Architektur und die GPU-Kommunikation untersuchen) und der Nutzen sehr gering ist. Versuchen Sie zunächst als Übung, mit der GPU zu kommunizieren, die direkt mit dem PCIe-Bus in Ihrem PC verbunden ist.
ssavec

Nein, tue ich nicht. Ich studiere das PCIe-Protokoll und überprüfe, ob ich mit dem Raspberry Pi GPIO kommunizieren kann. Was halten Sie von der Verwendung eines PE4L-PM060A ? Ist ein PCIe-zu-mPCIe-Adapter. Mir ist aufgefallen, dass die PCI 1x-Schnittstelle nur die PC1 16x-Bandbreite reduziert, das macht mir nichts aus. Diese Art von Dingen kann mir helfen, weil ich ein Entwicklungsboard mit mPCIe-Schnittstelle verwenden kann.
Arturo Veras

3

Es wäre möglich, aber bitte beachten Sie, dass Sie Ihre eigenen Treiber schreiben und die Stromversorgungsprobleme lösen müssen, da ich bezweifle, dass der RasPi in der Lage ist, eine vollständige PCI / PCI-E-GPU allein zu betreiben. Bedenken Sie bitte auch, dass die CPU auch die Leistung der GPU beeinflusst. Es ist daher möglicherweise eine Idee, dies zu überprüfen, bevor Sie es versuchen. <--- Zusätzlich können Sie ein 1-fach bis 16-fach gespeistes Steigkabel verwenden, das üblicherweise in GPU-Bergbauanlagen verwendet wird. Es gibt auch andere Riserkabel mit Stromversorgung, die Adapterkarten für USB verwenden.


Das ist jetzt mein Anliegen, die Stromprobleme. Was sind die Probleme, die ich habe, wenn ich eine externe Stromversorgung für die GPU verwenden möchte?
Arturo Veras

1

Sie könnten ein startKIT mit einem PCI Express x1-Kartensteckplatz verwenden, über den Sie eine Schnittstelle zu einer geeigneten GPU herstellen können (Sie müssten wahrscheinlich Ihre eigenen Treiber schreiben). Diese Schnittstelle könnte dann über den GPIO-Header mit dem Pi verbunden werden.

Kurz gesagt: Ja, Sie können, die gesamte dafür erforderliche Hardware ist vorhanden und sofort verfügbar. Sie müssen lediglich eine Klebelogik schreiben, aber erwarten Sie nicht, dass dies einfach ist.


Vielleicht den GPIO mit einem MCS9901 an PCIe anschließen?
Arturo Veras

Das startKIT fügt nur eine Hardware-Schnittstelle zwischen PCIe und de RPi hinzu? Die Treiber, die Sie erwähnen, müssen im startKit oder im RPi geschrieben sein? Was ist die Schwierigkeit, einen Treiber zu programmieren?
Arturo Veras

Sehr schwer wahrscheinlich. Ich bin mir nicht sicher, wie dies möglich ist, aber theoretisch werden Sie mit dem startKIT die erforderliche Hardware und Umgebung haben, um das zu tun, was Sie wollen.

1
Was denken Sie über USB - 2380 . Es scheint die Lösung zu sein, das einzige Problem ist, dass GT640 16x PCIe und USB 2380 für 1x PCIe ist, aber ich denke, das ist überhaupt kein Problem.
Arturo Veras

@ArturoVeras Schwer zu sagen, ohne Zugriff auf Produktdetails, aber es scheint möglich zu sein, aber es wird schwierig. Außerdem werden Sie wahrscheinlich nicht in der Lage sein, die volle Auslastung der Karten zu erhalten, wenn der Pi ohnehin als Host fungiert.

1

Also, um den toten Faden zu wecken, würde ich es nicht auf einem Raspberry Pi persönlich tun. Ich würde zumindest das Pi 3 mit einem mPCIe-zu-PCIe-Adapter empfehlen, der für eine Desktop-GPU entwickelt wurde und von einem dedizierten Netzteil mit Strom versorgt wird. Außerdem müssen Sie sicherstellen, dass die Linux-Version Treiberunterstützung bietet. Wenn es keine Treiber gibt, muss jemand sie schreiben, und das kann mit den richtigen Assets und dem richtigen Quellcode Monate dauern. Es ist zu 100% möglich, dies zu tun, aber Sie müssen wahrscheinlich talentiert genug sein, um es für die Community zu schreiben, wenn dies noch nicht geschehen ist.


Natürlich werden alle Linux-Treiber, die von NVidia veröffentlicht werden, auf die PC-ähnliche Hardware abzielen - ich kann nicht glauben, dass das OP in der Lage sein wird, den Datendurchsatz zu veranlassen, etwas Nützliches zu tun, anstatt sogar FPS (Frames pro Sekunde) Angenommen, er könnte eine nützliche Anzeige erhalten, würde ich wetten, dass sie in FPM oder PFH gemessen wird! 8-)
SlySven

Außerdem vertreibt NVidia nur geschlossene Binärdateien anstelle von Open-Source-Codetreibern (auf die gleiche Weise, wie wir nur die Binärblobs erhalten, die auf dem RPi zum Betreiben der GPU verwendet werden), was die Entwicklung von Treibern sehr viel schwieriger, wenn nicht unmöglich macht ... IMHO .
SlySven

Dies gilt auch und sollte berücksichtigt werden. Jeder Code, den Sie finden und für das Pi 3 zurückentwickeln können, sollte geschätzt werden. Wahrscheinlich braucht es ein Team von ethischen Hackern oder ein paar Unternehmen, um eine Lösung zu finden. In jedem Sinne wäre es interessant und grenzwertig lustig zu sehen.
Robschwab1

0

Ein weiteres Problem, dem Sie gegenüberstehen, ist, dass die CPU den Engpass der Grafikkarte darstellen würde, da sie nur mit 700 MHz getaktet ist. Ich würde es mit einer viel günstigeren GT 210 versuchen (die Sie für 20 - 30 US-Dollar finden können). In Bezug auf Ihre Treiber konnten Sie die Open-Source-Nvidia-Treiber finden und auf ARM kompilieren.


Was ist das spezifische Problem dabei? Ich brauche nur einige Berechnungen von der GPU. Ich brauche keine Echtzeitanwendungen.
Arturo Veras

Was ist mit dieser Karte? SBC-A510 Einplatinencomputer . Es hat eine 800 MHz CPU und bringt einen PCIe 1x Slot mit.
Arturo Veras

0

Nur gegen einen alten Faden stoßen. Es ist fast unmöglich, aber der Hauptgrund ist Kapitalismus und Bürokratie, nicht das Schreiben von Treibern.

Sicher, das Schreiben von Treibern ist sehr schwierig, aber die Arbeit mit einem epischen Team würde vor Sonnenaufgang erfolgen.

Noch schwieriger wäre es, auf vorhandene Quellcodes für die gesamte Grafikkarte und möglicherweise sogar auf Quellcodes für BCM2835, BCM2836 oder BCM2837 (Pi 1, 2 bzw. 3) zuzugreifen. Sie benötigen diese, um zu lernen, wie die Karten im Inneren funktionieren, und um eine Schnittstelle zwischen ihnen zu finden.

Sie müssten ein OEM sein, um überhaupt die Möglichkeit zu haben, die Quellcodes zu erhalten. Auch die Raspberry Pi Stiftung selbst hat hatte Schwierigkeiten hat , mit denen und muss settle auf einem vorkompilierte Blob mit dem Prozessor und GPU-Schnittstelle.

Der Energiebedarf wäre überhaupt kein Problem, da Sie ihn bereits herausgefunden hätten, als Sie [Firmenname] anflehen. Wahrscheinlich ein PC-Netzteil, das an die Grafikkarte angeschlossen ist und den Pi auch über seine 5-V-Schiene mit Strom versorgt.


0

Der MCS9990 ist eine PCIe-zu-USB / ISA-Bridge, die zusätzliche USB- / ISA- / GPIO-Ports auf einem System mit PCIe-Schnittstelle bereitstellt. Es kann nicht verwendet werden, um ein PCIe-Gerät an ein System anzuschließen, das nur über USB verfügt, z. B. ein RPi. Dieser Ansatz ist also von Anfang an zum Scheitern verurteilt.


-1

Ihr einziges Problem werden die Fahrer sein. Es wäre so cool, eine Nvidia-GPU auf einem Pi zum Laufen zu bringen, aber das ist fast so schwer wie das Erstellen einer eigenen GPU von Grund auf.

Die Leute haben Recht, die Hardware ist nicht unmöglich, aber sie wird lückenhaft sein. Sie benötigen jedoch unbedingt Treiber. Selbst wenn Sie Ihre eigenen schreiben könnten, wären sie nicht dafür optimiert, alle Funktionen und Geschwindigkeiten der GPU zu nutzen.

Ich wollte das mit einer alten Nvidia GForce versuchen, aber ich bin ein mieser Programmierer ohne Hardware-Hacking-Erfahrung.

Ich dachte, es wäre ein langer Versuch, aber ich schickte NVidia kurz nach der Veröffentlichung von RTX eine E-Mail und fragte, ob sie entweder die Treiber für ein paar Pre-2010-GPUs für den Pi kompilieren und sie zum Herunterladen und Basteln oder zur Veröffentlichung bereitstellen würden der Quellcode für die Leute, um sich selbst zu kompilieren. Offensichtlich sagten sie "nein".

Also hier ist die Sache, wir haben externe GPUs für Laptops ( Kosten nicht berücksichtigt ) und das Wi-Fi im neuen Pi 3B + soll schnell sein, warum nicht mal sehen, ob das funktionieren könnte?


Ich bin mir nicht sicher, ob dies eine, wenn auch nützliche Antwort oder einen Vorschlag darstellt.
Greenonline

@ Greenonline Dies sollte ein Vorschlag und eine Antwort sein (Lies den letzten Satz noch einmal)
lockheed silverman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.