Conecte una GPU a Raspberry pi

15

Quiero conectar una GPU GT640 a una Raspberry pi modelo B. Sé que no hay una conexión directa y los datos de transferencia son muy diferentes. ¿Hay alguna posibilidad de conectar estos dispositivos para aprovechar la potencia de procesamiento de la GPU? No es necesario tener una comunicación en tiempo real, pero ¿es esto posible en teoría?

Arturo Veras
fuente
Estoy planeando usar MCS9990 (PCIe a controlador de host USB 2.0 de 4 puertos) para hacer una placa que conecte el GT640 PCI 3.0 16x con el RPi USB 2.0. Creo que la única dificultad es el controlador de ese chip, pero tengo tiempo para desarrollarlo. Si implemento esto, ¿qué pasa con el otro software (controlador CUDA y GForce) que funcionan sobre el controlador de la placa?
Arturo Veras
Encontré una interfaz que hará el trabajo. Es un controlador periférico PCI Express Gen 2 a USB 3.0 . Cuenta con un puerto PCI Express Gen 2 x1 y un puerto de cliente USB 3.0 SuperSpeed. Sé que USB 3.0 también es compatible con USB 2.0: + USB de alta velocidad ( USB 2.0 ) 480 Mbit / s + USB SuperSpeed ​​( USB 3.0 ) 5 Gbit / s + PCI Express externo 2.0 × 1 4 Gbit / s + PCI Express 3.0 externo × 16 32Gbit / s Voy a estar limitado por el puerto USB 2.0 Raspberry pi.
Arturo Veras
3
Entonces sugiero seriamente que evitar tratar de hacer esto
nagyben
Programación de los conductores es muy difícil, especialmente cuando se trata de algo que nunca se ha hecho antes
nagyben
El procesador principal de Raspberry Pi ya es una GPU basada en VideoCore IV.
Erkin Alp Güney

Respuestas:

3

casi imposible.

mejor intente utilizar una caja de PC barata, porque existe un riesgo muy alto de freír su GT640 y / o Raspberry Pi.

lenik
fuente
¿Por qué es casi imposible? Estaba pensando en usar un chipset adaptador PCIe a USB como MCS9901CV-CC, quiero probar de manera inversa.
Arturo Veras
@ArturoVeras porque no se supone que estos dispositivos estén conectados y / o utilizados juntos. y mucho menos los controladores y el software faltantes que tiene que escribir, el rendimiento sería abismal, lo que haría que todo el esfuerzo fuera discutible.
lenik
Tal vez me estoy perdiendo el punto. Corrígeme si me equivoco, la idea es conectar la frambuesa, de alguna manera, a una GPU. Más tarde podemos hacer un clúster con esto y tener más poder de proceso. La idea no es aprovechar la velocidad de transmisión PCIe en lugar de los miles de núcleos de la GPU. Entonces, si puedo comunicarme, usando un chip GPIO oa como MCS9901CV, será genial porque eso significa que puedo agregar más Raspberry pi y hacer un clúster y listo.
Arturo Veras
1
@ArturoVeras, ¿ha logrado conectar un procesador más simple al RaspPi GPIO y comunicarse razonablemente con él? Estoy de acuerdo con lenik, que es una tarea extremadamente difícil (estudie la arquitectura PCIe y la comunicación GPU primero) y el beneficio es muy pequeño. Tal vez, como ejercicio, primero intente comunicarse con la GPU conectada directamente al bus PCIe en su PC.
ssavec
No, no lo hago. Estoy estudiando el protocolo PCIe y veo si puedo comunicarme con Raspberry pi GPIO. ¿Qué te parece usar un PE4L-PM060A ?, es un adaptador PCIe a mPCIe. Me doy cuenta de que la interfaz PCI 1x solo reduce el ancho de banda PC1 16x, no me importa. Este tipo de cosas me pueden ayudar porque puedo usar una placa de desarrollo que tiene una interfaz mPCIe.
Arturo Veras
3

Sería posible, pero tenga en cuenta que necesitará escribir sus propios controladores y solucionar los problemas de alimentación, porque dudo que RasPi pueda alimentar una GPU PCI / PCI-E completa por sí mismo. También tenga en cuenta que la CPU también afectará la potencia de la GPU, por lo que puede ser una idea investigar antes de intentarlo. <--- Además de eso, puede usar un cable de subida alimentado 1x a 16x comúnmente utilizado en plataformas de minería de gpu. También hay otros cables verticales alimentados que utilizan tarjetas adaptadoras para USB.

Zeusking19-Code
fuente
Esa es mi preocupación en este momento, los problemas de poder. ¿Cuáles son los problemas que tengo en mente si quiero usar una fuente de alimentación externa para la GPU?
Arturo Veras
1

Podría usar un startKIT que tiene una ranura para tarjeta PCI Express x1 que podría usar para conectar a una GPU adecuada (probablemente tendría que escribir sus propios controladores), y esto podría interactuar con el Pi a través del encabezado GPIO.

En resumen: sí, puede, todo el hardware para hacerlo existe y está disponible, todo lo que tiene que hacer es escribir la lógica del pegamento, pero no espere que sea fácil.


fuente
¿Quizás conectar el GPIO a PCIe con un MCS9901?
Arturo Veras
¿StartKIT solo agrega una interfaz de hardware entre PCIe y de RPi? ¿Los controladores que menciona deben estar escritos en el startKit o en el RPi? ¿Cuál es la dificultad de programar un controlador?
Arturo Veras
Muy difícil probablemente. En realidad, no estoy seguro de qué tan factible es esto, pero en teoría con el kit de inicio tendrá el hardware y el entorno necesarios para hacer lo que desea.
1
¿Qué opinas sobre USB 2380 ? Parece ser la solución, el único problema es que GT640 es 16x PCIe y USB 2380 es para 1x PCIe, pero creo que esto no es un problema en absoluto.
Arturo Veras
@ArturoVeras Difícil de decir sin acceso a los detalles del producto, pero parece que debería ser posible, aún así, espero que sea difícil. Además, es probable que no pueda aprovechar al máximo la potencia de las tarjetas cuando tenga el Pi como host de todos modos.
1

Entonces, para despertar el hilo muerto, no lo haría personalmente en una Raspberry Pi. Recomendaría al menos el Pi 3 con un adaptador mPCIe a PCIe diseñado para GPU de escritorio y alimentado por una fuente de alimentación dedicada. También debe asegurarse de que la versión de Linux tenga soporte para controladores; si no hay controladores, alguien tiene que escribirlos, y eso puede llevar meses con los activos y el código fuente correctos. Es 100% posible hacerlo de esta manera, pero es probable que tenga que tener el talento suficiente para escribirlo para la comunidad si aún no se ha hecho.

Robschwab1
fuente
Por supuesto, cualquier controlador de Linux que la versión de NVidia vaya a apuntar al hardware similar a una PC; no puedo creer que el OP pueda obtener el rendimiento de datos para hacer algo útil, en lugar de FPS (fotogramas por segundo) incluso ¡suponiendo que pueda obtener cualquier salida de pantalla útil, apuesto a que se mediría en FPM o PFH! 8-)
SlySven
Además, NVidia solo distribuye binarios cerrados en lugar de controladores de código fuente abierto (de la misma manera que solo obtenemos los blobs binarios que se usan en el RPi para operar la GPU), lo que hace que el desarrollo de controladores sea mucho, mucho más difícil, si no imposible ... .
SlySven
Esto también es cierto y debe tenerse en cuenta. Cualquier código que pueda encontrar e ingeniería inversa para el pi 3 debe ser apreciado. Probablemente se necesitará un equipo de piratas informáticos éticos o algunas empresas para crear una solución. En cualquier sentido, sería interesante y casi divertido de ver.
Robschwab1
0

Otro problema que enfrenta es que la CPU podría bloquear la tarjeta gráfica, ya que tiene una velocidad de reloj de solo 700 MHz. Intentaría esto con un GT 210 mucho más barato (que puedes encontrar por $ 20 - $ 30). Con respecto a sus controladores, puede encontrar los controladores de código abierto de Nvidia y compilarlos en ARM.

Orbita
fuente
¿Cuál es el problema específico con esto? solo necesito algunos cálculos de la GPU, no necesito aplicaciones en tiempo real.
Arturo Veras
¿Qué hay de esta tarjeta? SBC-A510 Computadora de placa única . Tiene una CPU de 800 MHz y trae una ranura PCIe 1x.
Arturo Veras
0

Simplemente toparse con un hilo viejo. Es casi imposible, pero la razón principal es el capitalismo y la burocracia, no escribir controladores.

Claro, escribir pilotos es muy difícil, pero trabajar con un equipo épico y se haría antes del amanecer.

Aún más difícil sería obtener acceso a los códigos fuente existentes para toda la tarjeta de video y tal vez incluso los códigos fuente para BCM2835, BCM2836 o BCM2837 (Pi 1, 2 y 3, respectivamente). Los necesita para aprender cómo funcionan las tarjetas en el interior y encontrar una manera de interactuar entre ellas.

Tendría que ser un OEM para obtener incluso la oportunidad de obtener los códigos fuente. Incluso la propia fundación Raspberry Pi ha tenido dificultades con ellos y tiene que conformarse con un blob precompilado para interactuar con el procesador y la GPU.

Los requisitos de energía no serían un problema en absoluto ya que, para cuando esté suplicando [nombre de la compañía], ya lo habría descubierto. Probablemente una fuente de alimentación de PC conectada a la tarjeta de video y también alimentando el Pi a través de su riel de 5V.

PNDA
fuente
0

El MCS9990 es un puente PCIe a USB / ISA, diseñado para proporcionar puertos USB / ISA / GPIO adicionales en un sistema con interfaz PCIe. No se puede usar para conectar un dispositivo PCIe a un sistema que solo tiene USB, como un RPi. Entonces este enfoque está condenado desde el principio.

Dmitry Grigoryev
fuente
-1

Su único problema serán los conductores. Sería genial tener una GPU Nvidia para trabajar en un Pi, pero esto es casi tan difícil como construir tu propia GPU desde cero.

La gente tiene razón, el hardware no es imposible, pero SERÁ incompleto. Sin embargo, absolutamente necesitará controladores. Incluso si pudieras escribir el tuyo, no estarían optimizados para utilizar todo a la velocidad y las características de la GPU.

Quería probar esto con una vieja Nvidia GForce, pero soy un programador pésimo sin experiencia en piratería de hardware.

Pensé que era una posibilidad remota, pero envié un correo electrónico a NVidia justo después de que se lanzó el RTX, y pregunté si compilarían los controladores para algunas GPU anteriores a 2010 para el Pi y los pondrían a disposición para descargar y jugar, o lanzar El código fuente para que las personas se compilen. Obviamente dijeron "no".

Así que aquí está la cosa, tenemos GPU externas para computadoras portátiles ( sin tener en cuenta los costos ) y se supone que el Wi-Fi en el nuevo Pi 3B + es rápido, ¿por qué no ver si eso podría funcionar?

Lockheed Silverman
fuente
No estoy seguro de si esto proporciona una respuesta, o es una sugerencia, aunque sea útil.
Greenonline el
@ Greenonline Esto tenía la intención de ser una sugerencia y una respuesta (releer la última oración)
lockheed silverman