Collega una GPU a Raspberry pi


15

Voglio collegare una GPU GT640 a un Raspberry pi modello B. So che non esiste una connessione diretta e che i dati di trasferimento sono molto diversi ma. C'è qualche possibilità di connettere questi dispositivi per sfruttare la potenza di elaborazione della GPU? non è necessario avere una comunicazione in tempo reale, ma è possibile in teoria?


Sto pensando di utilizzare MCS9990 (da PCIe a controller host USB 2.0 a 4 porte) per creare una scheda che collega GT640 PCI 3.0 16x con RPi USB 2.0. Penso che l'unica difficoltà sia il driver di quel chip, ma ho tempo per svilupparlo. Se implemento questo, che dire degli altri software (driver CUDA e GForce) funzionano sul driver della scheda?
Arturo Veras,

Ho trovato un'interfaccia che farà il lavoro. È un controller periferico da PCI Express Gen 2 a USB 3.0 . È dotato di una porta PCI Express Gen 2 x1 e una porta client SuperSpeed ​​USB 3.0. So che USB 3.0 supporta anche USB 2.0: + USB Hi-Speed ​​( USB 2.0 ) 480 Mbit / s + USB SuperSpeed ​​( USB 3.0 ) 5 Gbit / s + PCI Express 2.0 esterno × 1 4 Gbit / s + PCI Express 3.0 esterno × 16 32 Gbit / s Ho intenzione di essere limitato dalla porta USB 2.0 Raspberry pi.
Arturo Veras,

3
Quindi suggerisco seriamente di evitare di provare a farlo
nagyben,

La programmazione dei driver è molto difficile, soprattutto quando è qualcosa che non è mai stato fatto prima
nagyben,

Il processore principale di Raspberry Pi è già una GPU basata su VideoCore IV.
Erkin Alp Güney,

Risposte:


3

quasi impossibile.

faresti meglio a provare a usare un PC box economico, perché c'è un rischio molto elevato di friggere GT640 e / o Raspberry Pi.


Perché almos è impossibile? stavo pensando di usare un chipset adattatore PCIe-USB come MCS9901CV-CC, voglio provare il modo inverso.
Arturo Veras,

@ArturoVeras perché questi dispositivi non devono essere collegati e / o utilizzati insieme. per non parlare dei driver e del software mancanti che devi scrivere, le prestazioni sarebbero terribili, rendendo l'intero sforzo controverso.
lenik,

Forse mi manca il punto. Correggimi se sbaglio, l'idea è di collegare il lampone, in qualche modo, a una GPU. Successivamente possiamo creare un cluster con questo e avere più potenza di processo. L'idea non è quella di sfruttare la velocità di trasmissione PCIe anziché le migliaia di core GPU. Quindi, se riesco a comunicare, usando GPIO o un chip come MCS9901CV, ci sarà grande perché ciò significa che posso aggiungere più Raspberry pi e creare un cluster e voilà !.
Arturo Veras,

1
@ArturoVeras sei riuscito a collegare un processore più semplice al GPIO RaspPi e comunicare ragionevolmente con esso? Concordo con lenik, che è un compito estremamente difficile (studiare prima l'architettura PCIe e la comunicazione GPU) e il vantaggio è molto piccolo. Forse come esercizio prima prova a comunicare con la GPU collegata direttamente al bus PCIe nel tuo PC.
ssavec,

No non lo so. Sto studiando il protocollo PCIe e vedo se riesco a comunicare con Raspberry pi GPIO. Cosa ne pensi dell'utilizzo di un PE4L-PM060A ?, È un adattatore da PCIe a mPCIe. Ho notato che l'interfaccia PCI 1x riduce solo la larghezza di banda PC1 16x, non mi dispiace. Questo tipo di cose può aiutarmi perché posso usare una scheda di sviluppo che ha un'interfaccia mPCIe.
Arturo Veras,

3

Sarebbe possibile, ma tieni presente che dovrai scrivere i tuoi driver e risolvere i problemi di alimentazione, perché dubito che RasPi sarà in grado di alimentare da solo una GPU PCI / PCI-E completa. Tieni anche presente che la CPU influirà anche sulla potenza della GPU, quindi potrebbe essere un'idea da ricercare prima di provare. <--- In aggiunta a ciò, puoi usare un cavo riser alimentato da 1x a 16x comunemente usato nelle piattaforme di mining gpu. Esistono altri cavi riser alimentati che utilizzano schede adattatrici anche per USB.


Questa è la mia preoccupazione in questo momento, i problemi di potere. Quali sono i problemi che ho in mente se voglio utilizzare un alimentatore esterno per la GPU?
Arturo Veras,

1

È possibile utilizzare un startKIT che ha uno slot per schede PCI Express x1 che è possibile utilizzare per interfacciarsi con una GPU adatta (probabilmente si dovranno scrivere i propri driver), e questo potrebbe quindi interfacciarsi con il Pi tramite l'intestazione GPIO.

Quindi in breve: sì, tutto l'hardware per farlo esiste ed è prontamente disponibile, tutto quello che devi fare è scrivere la logica della colla, ma non aspettarti che sia facile.


Forse connetti GPIO a PCIe con un MCS9901?
Arturo Veras,

StartKIT aggiunge solo un'interfaccia hardware tra PCIe e de RPi? I driver che menzioni devono essere scritti in startKit o in RPi? Qual è la difficoltà di programmare un driver?
Arturo Veras,

Molto difficile probabilmente. In realtà non sono sicuro di quanto sia fattibile, ma in teoria con startKIT avrai l'hardware e l'ambiente necessari per fare quello che vuoi.

1
Cosa ne pensi di USB 2380 . Sembra essere la soluzione, l'unico problema è che GT640 è 16x PCIe e USB 2380 è per 1x PCIe, ma penso che questo non sia affatto un problema.
Arturo Veras,

@ArturoVeras Difficile dirlo senza accesso ai dettagli del prodotto, ma sembra che dovrebbe essere possibile, tuttavia, aspettarsi che sia difficile. Inoltre, probabilmente non sarai in grado di ottenere il pieno utilizzo del potere delle carte quando ha comunque il Pi come host.

1

Quindi, per riattivare il thread morto, non lo farei personalmente su un Raspberry Pi. Consiglierei almeno il Pi 3 con un adattatore da mPCIe a PCIe progettato per GPU desktop e alimentato da un alimentatore dedicato. Inoltre, è necessario assicurarsi che la versione di Linux disponga del supporto del driver per esso; se non ci sono driver qualcuno deve scriverli, e ciò può richiedere mesi con le risorse e il codice sorgente giusti. È possibile farlo al 100% in questo modo, ma probabilmente dovrai avere abbastanza talento per scriverlo per la comunità se non è già stato fatto.


Naturalmente tutti i driver Linux rilasciati da NVidia saranno destinati all'hardware simile a un PC: non riesco a credere che l'OP sarà in grado di ottenere il throughput dei dati per fare qualcosa di utile, al posto dell'FPS (frame per secondo) anche supponendo che potesse ottenere qualsiasi utile output sul display scommetterei che sarebbe misurato in FPM o PFH! 8-)
SlySven

Inoltre NVidia distribuisce solo binari chiusi anziché driver di codice open source (nello stesso modo in cui otteniamo solo i BLOB binari utilizzati su RPi per far funzionare la GPU) che rende lo sviluppo di driver molto, molto più difficile se non impossibile ... IMHO .
SlySven,

Anche questo è vero e dovrebbe essere preso in considerazione. Qualsiasi codice che puoi trovare e decodificare per il pi 3 dovrebbe essere custodito. Probabilmente ci vorrà un team di hacker etici o alcune aziende per riunirsi per creare una soluzione. In entrambi i sensi sarebbe interessante e borderline divertente da vedere.
Robschwab1,

0

Un altro problema che affronti è che la CPU avrebbe il collo di bottiglia della scheda grafica poiché ha un clock a soli 700 MHz. Vorrei provare questo con una GT 210 molto più economica (che puoi trovare per $ 20 - $ 30). Per quanto riguarda i driver, è possibile trovare i driver Nvidia open source e compilarli su ARM.


Qual è il problema specifico con questo? ho solo bisogno di un po 'di calcolo dalla GPU, non ho bisogno di applicazioni in tempo reale.
Arturo Veras,

E questa carta? Computer a scheda singola SBC-A510 . Ha una CPU a 800 MHz e porta con uno slot PCIe 1x.
Arturo Veras,

0

Mi sono imbattuto in un vecchio filo. È quasi impossibile, ma il motivo principale è il capitalismo e la burocrazia, non la scrittura di driver.

Certo, scrivere i driver è molto difficile, ma lavorare con un team epico e sarebbe fatto prima dell'alba.

Ancora più difficile sarebbe accedere ai codici sorgente esistenti per l'intera scheda video e forse anche ai codici sorgente per BCM2835, BCM2836 o BCM2837 (rispettivamente Pi 1, 2 e 3). Hai bisogno di quelli per imparare come funzionano le carte all'interno e trovare un modo per interfacciarsi tra loro.

Dovresti essere un OEM per avere anche solo la possibilità di ottenere i codici sorgente. Anche la stessa fondazione Raspberry Pi ha avuto difficoltà con queste e deve accontentarsi di un BLOB precompilato per interfacciarsi con il processore e la GPU.

I requisiti di alimentazione non sarebbero affatto un problema dal momento che, quando supplicherai [nome dell'azienda], lo avresti già capito. Probabilmente un alimentatore per PC collegato alla scheda video e che alimenta anche il Pi tramite la sua guida 5V.


0

L'MCS9990 è un bridge da PCIe a USB / ISA, progettato per fornire porte USB / ISA / GPIO aggiuntive su un sistema con interfaccia PCIe. Non può essere utilizzato per collegare un dispositivo PCIe a un sistema che ha solo USB, come un RPi. Quindi questo approccio è condannato dall'inizio.


-1

Il tuo unico problema saranno i driver. Sarebbe così bello far funzionare una GPU Nvidia su un Pi, ma è difficile quasi quanto costruire la tua GPU da zero.

Le persone hanno ragione, l'hardware non è impossibile, ma sarà impreciso. Tuttavia, avrai assolutamente bisogno di driver. Anche se tu potessi scrivere il tuo, non sarebbero ottimizzati per utilizzare tutto per la velocità e le funzionalità della GPU.

Volevo provare questo con un vecchio Nvidia GForce, ma sono un pessimo programmatore senza esperienza di hacking hardware.

Ho pensato che fosse un colpo lungo, ma ho inviato un'e-mail a NVidia subito dopo il rilascio dell'RTX e ho chiesto se avrebbero compilato i driver per alcune GPU pre-2010 per il Pi e li avrebbero resi disponibili per il download e armeggiare o rilasciare il codice sorgente per consentire alle persone di compilarsi. Ovviamente hanno detto "no".

Quindi, ecco la cosa, abbiamo GPU esterne per laptop ( costi ignorati ) e il Wi-Fi nel nuovo Pi 3B + dovrebbe essere veloce, perché non vedere se potrebbe funzionare?


Non sono sicuro se questo fornisce una risposta, o è un suggerimento, anche se utile.
Greenonline,

@ Greenonline Questo doveva essere un suggerimento e una domanda (rileggi l'ultima frase)
Lockheed Silverman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.