Tarjeta de video de conducción STM32 PCIe

[Gpuhackr] eligió su nombre de usuario para explicar exactamente cómo pasa su tiempo. Por ejemplo, aquí usa una placa STM32 Discovery para manejar una tarjeta gráfica AMD Radeon HD 2400. El microcontrolador ARM en realidad no usa la interfaz PCIe en la tarjeta. En lugar de, [Gpuhackr] parcheado en la interfaz de depuración integrada en la propia tarjeta. Esto no es tan simple como parece, pero si le importa el cableado, es una forma bastante interesante de conectar un ARM a una pantalla LCD.

Este proyecto habría sido casi imposible si no hubiera sido por el código fuente abierto que lanzó AMD. Esto le permite implementar las funciones de imágenes 3D de la tarjeta. La demostración programa directamente la CPU Ut Xtensa que está en la tarjeta de video. Dibuja un cubo con degradados de color en ambos lados. El cubo gira mientras se muestra la información de depuración en la pantalla. En este caso, el chip / placa ARM se utiliza realmente como programador para cargar algún firmware personalizado. Pero creemos que un código real Shinobi podría implementar un protocolo de comunicación para abrir una forma sencilla de manejar la tarjeta en tiempo real.

[Thanks uMinded]

  • jaspe dice:

    ¿puedes decir racimos .. ??

  • Jaime dice:

    Entonces ... ¿sin código fuente, nada en absoluto, solo un tipo de publicación contando una historia?

    • rasz dice:

      Había algo de código fuente en
      https://github.com/gpuhackr
      pasado noviembre
      http://webcache.googleusercontent.com/search?q=cache:7tew3NmU2RwJ:https://github.com/gpuhackr+&cd=1&hl=en&ct=clnk&client=opera

  • lgrunenberg dice:

    video o nunca sucederá

  • roboman2444 dice:

    entonces ... ahora mi aurduino puede tener opencl y opengl?

  • roboman2444 dice:

    entonces ... ahora mi aurduino puede tener opencl y opengl?

  • rasz dice:

    I2C funciona a 150 KB / s, por lo que no hay video 🙁
    Sería una mentira si alguien pudiera encontrar una manera de usar una tarjeta ATI independiente como decodificador h.264, simplemente bombeando archivos MPEG sin procesar con un microcontrolador de tarjeta SD.

    • nes dice:

      Puede cambiar el bus I²C para que sea un maestro. Entonces, enciende su lógica con la CPU Tensilica y usa un microcontrolador con I2C para brindarle E / S, una interfaz para almacenamiento masivo de texturas, etc. Sería un poco lento, sí, pero elija una tarjeta con mucha SDRAM, compre las texturas comprimidas y descomprímalas en la tarjeta. Cualquier micro de 8 bits con un puerto I2C maestro / esclavo sería suficiente.

      Me pregunto por qué no publicó alguna fuente. Prometió una utilidad de Linux para ubicar las almohadillas I2C en cualquier tarjeta Radeon arbitraria, así como los elementos de imágenes cúbicos para la Tensilica. Esto, sin embargo, se publicó hace 10 meses. Quizás AMD lo vio y le hizo una oferta que no pudo rechazar.

      • rasz dice:

        > Quizás AMD lo vio y le hizo una oferta
        > no podía negarse.

        sí, esto es demasiado con muy poco, huele a cosas de NDA

  • ... dice:

    Esto es asombroso, todo, desde poder ejecutar un panel lvds directamente desde el conector dvi hasta agregar una GPU completa a un microprocesador, hasta hacerlo con solo una interfaz i2c ...

    tantas aplicaciones posibles ...

    en b4 la gente de bitcoin ...

    • angus dice:

      La gente de Bitcoin se alejará de las GPU pronto, ya que los nuevos mineros basados ​​en ASIC dañarán la minería de GPU.

    • cortar masa dice:

      La parte LVDS de este supuesto truco es lo mejor, en mi humilde opinión.

      Me sumerjo en computadoras portátiles muertas, y si la respuesta para transformarlas en pantallas utilizables fuera "Use Radeon e instale el firmware" en lugar de "Negocie con alguna compañía extraña de Asia Oriental en Ebay para obtener un convertidor DVI-LVDS", "Me vendría bien al menos algunos de ellos.

  • bty dice:

    Esto es interesante desde la perspectiva de la investigación, pero no tiene ningún uso práctico. El chico aprende sobre la CPU UVD Xtensa y escribe firmware para ella. Lo más probable es que no tenga ningún interés en hacer que una CPU arbitraria impulse la gpu. Entonces, no tiene nada que ver con el STM32, probablemente solo lo esté usando para omitir el protocolo de interfaz de depuración. Si desea una MCU de 32 bits con aceleración 3D HW o decodificación de video, solo obtenga una aplicación. placa que funciona linux.

    • nes dice:

      El problema con las placas con visualizadores 3D integrados es que el hardware a menudo no está documentado públicamente, p. PowerVR, Broadcom Videocore. Al menos en ATI se abre principalmente. No tenía idea de que hasta ahora hay una CPU de propósito general colgada en el bus.

  • Guillermo dice:

    Creo que debido a que el Xtensa está ahí, una tarjeta de video es una computadora de placa única bastante poderosa. Solo necesita tener algo para insertar algo de código al principio (como con los FPGA) y luego se apaga.

    • DanJ dice:

      Así es. Realmente es un trabajo muy inteligente.

  • FrankenPC dice:

    ¡Este es un cubo ENTERO de santos! En serio. No puedo esperar a ver cómo se utiliza.

  • hw_tool dice:

    Oye tmbinc, ¿cómo estás?

    De todos modos, ¿alguien sabe si la interfaz de depuración está documentada (el i2c)?
    Me gustaría saber los comandos (presumiblemente recordar / leer / escribir / ejecutar).
    Alternativamente, ¿el xtensa ejecuta accidentalmente código cargado por la BIOS? ¿Quizás el protocolo de depuración existe ?.

    De hecho, me gustaría estropear esto, y el protocolo de interfaz de depuración es la única información que no puedo encontrar.

  • zokier dice:

    Supongo que el código se basa, por ejemplo, en Esta demostración que parece bastante atractiva. Tal vez si pudiera descartar las sombras GLSL compiladas de los controladores correctos de alguna manera, entonces podría ser un poco más fácil.

    Creo que esto tiene un gran potencial para proyectos que necesitan salida de video. Tal vez alguien podría traer una buena demostración de 4k a esto 🙂

    El truco para conducir LVDS a través de DVI también parece bastante interesante en sí mismo, la primera vez que escuché sobre algo así.

  • tmbinc dice:

    No estoy de acuerdo con la opinión de que esto es inútil.

    Las GPU tienen mucha memoria hoy en día. Sin duda, puede poner todos los recursos (texturas, pero también búferes de vértices, sombras y búferes de comando) allí. Cargarlos llevará algún tiempo (y estoy de acuerdo en que el acceso a las tarjetas SD UVD sería bueno; no estoy seguro de si eso es posible, pero supongo que lo es).

    Después de eso, un pequeño microcontrolador, ¡incluso AVR! - podría ejecutar la lógica del juego y simplemente cargar algunas matrices en la GPU para actualizar la posición del jugador, etc., y luego activar una repetición del búfer de comando en la memoria de la GPU. Esto debería funcionar fácilmente sobre I2C en tiempo real.

    Por supuesto, podrías simplemente lanzar el juego en la UVD, pero probablemente ese no sea el problema.

  • SparkyGSX dice:

    ¡Maravilloso!

    Si entiendo correctamente, el STM32 básicamente "solo" lanza la CPU "auxiliar" de las tarjetas, que luego se puede usar para lanzar código arbitrario.

    Estoy un poco sorprendido de que la interfaz de depuración use I2C, esperaría una interfaz JTAG normal. En realidad, también puede haber una cadena JTAG, ya que generalmente incluyen todos los dispositivos principales y, a menudo, se usan para las pruebas iniciales de la placa.

    Me pregunto si esa CPU tiene acceso a alguna señal en el conector de borde, porque si es así, podría ser posible usarlas como una interfaz de alta velocidad, para leer datos de una tarjeta SD, por ejemplo, o tal vez a una interfaz con una tarjeta de red o algo similar.

    • nes dice:

      JTAG está en el conector PCIe. Probablemente, si realmente se lleva a cabo, solo hará investigación fronteriza. Finalmente, tienen un programa de CPU completo con el que pueden depurar hardware, y su memoria se asigna al espacio de direcciones del host.

  • Nigromante dice:

    Bueno, algunas variantes de spartan6 tienen un PCIe incorporado, por lo que spartan6 + videocard + stm32 funcionaría bien.

  • Zee dice:

    ¿Es OpenCV un microcontrolador?

  • polossatik dice:

    "Por lo general, no es posible interconectar la pantalla LCD de una computadora portátil a un puerto DVI directamente porque la codificación de datos es diferente; sin embargo, debido a que estas GPU también se usan en computadoras portátiles, se pueden cambiar al modo LVDS, lo que permite que la pantalla se conecte directamente".

    bastante obvio, si lo considera ..., ¿alguien tiene más información sobre esto (para que pueda manejar pantallas de portátiles antiguas directamente desde una tarjeta modificada)?

  • renacimiento dice:

    ¡Gran construcción!
    ¿Sería posible usar esto para tener una pantalla VGA conectada a RasPi?

  • hw_tool dice:

    ¿Alguien tiene alguna referencia a la estructura de comandos I2C para la interfaz de depuración?
    Una dirección que probablemente pueda resolver, pero algunas pistas sobre los comandos de registro de una estructura de lectura / escritura.
    Alguien necesita saberlo.
    Las hojas de datos en Internet confirman que el i2c se usa para depurar y que GPIO_4 se usa para verificarlo, pero no hay descripciones de los protocolos.

    • hw_tool dice:

      Tuve contacto de gpuhackr por correo electrónico.

      Afirma que publicará código pronto.

  • rasz dice:

    Y estaba en silencio.

    Por cierto, cavé un poco y gpuhacker es Allan MacKinnon, fundador y presidente de Pixel I / O
    registró GpuHacker.com unos días antes de crear https://github.com/gpuhackr-deposit.
    La compañía dice: "Nuestros productos mejoran la potencia de las GPU para brindar mejoras" 100x "en rendimiento y eficiencia".

    Creo que, en última instancia, no quiere compartir el código. Demasiado.

    • nes dice:

      Buen trabajo rastreándolo. Entonces, ¿tomó de abril a diciembre subir al escenario en el video de arriba? Supongo que entonces debe tener un trabajo diario.

      ¿Intentaste enviarle un correo electrónico al chico? Tengo una pequeña selección basada en tarjetas R600 este fin de semana para probar esto, pero planeo ubicar el bus i2c e intentar hacerlo explotar con bytes para ver qué pasa.

      • rasz dice:

        Si observa el rendimiento reciente de ese repositorio, parece que cargó código en abril.

        No me importó enviarlo. Supongo que recibió un correo electrónico de ATI (NDA y otros).

  • hw_tool dice:

    gpuhackr ha publicado algunas fotos más.

    100_3603

    • nes dice:

      ¡Terrible piratería! Me encantan los cables enchufados en una toma de dimm de repuesto para obtener un patrón I2C en el nivel correcto. Recuerde esto para emergencias 🙂

      Veo cómo ciertamente han pasado cientos de horas en esto. Lo suficientemente justo como para no querer publicarlo hasta que termine.

      ¿Acabo de leer que trajo un emulador de Dreamcast a la Xtensa? Eso lo colocará en una nueva liga de radicalismo.

Joel Carrasco
Joel Carrasco

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *