Cámara USB a memoria de GPU directamente

4

Puede haber varios puntos en esta pregunta que pueden no tener sentido para una persona con conocimientos, por lo que le agradezco su comprensión por adelantado.

Para un proyecto de visión por computadora, deseo procesar imágenes de una serie de cámaras (10s de cámaras) simultáneamente y queremos almacenar datos de imágenes en la memoria de la GPU lo más rápido posible, con RDMA o NVIDIA's gpuDirect. Existen cámaras con salidas SDI y las tarjetas pci-e de captura SDI con dicho acceso directo a la memoria de la GPU, sin embargo, una configuración como esta puede terminar siendo bastante costosa.

Por lo que respecta al costo, las cámaras USB que estamos considerando parecen ser una solución, sin embargo, todavía tengo que encontrar una tarjeta pci-e de host USB que admita RDMA o gpuDirect.

(1) ¿Alguno de ustedes ha visto un producto que pueda soportar dichos esquemas de acceso directo? (Tal vez algo que emule el controlador de la cámara en un extremo y pueda escribir directamente en la memoria de la GPU a través de pci-e)

(2) ¿Es lo que estoy buscando incluso tecnológicamente posible? Cuando me comuniqué con un fabricante de tarjetas pci-e host USB, recibí la siguiente respuesta que ni siquiera puedo interpretar:

  

Todos nuestros controladores USB 3 siguen la especificación xHCI publicada por   Intel:    enlace

     

Cuando los datos se transfieren desde un dispositivo USB, el controlador recibe una   Lista de pares de direcciones / longitud donde se deben escribir los datos. los   el controlador emitirá un PCIe MEM_WR a la dirección que se le da   con los datos. Espero que te ayude a decidir si puedes hacer lo que   quiere con nuestro controlador de host

Entonces, ¿piensan ustedes que es posible o no (por posible no me refiero a diseñar mi propio host USB personalizado capaz de hacer solo lo que se describe pero con lo que ya está disponible en el mercado)?

    
pregunta keoxkeox

1 respuesta

4

No he oído hablar de esto, pero busca en descripción de GPUdirect y sitio del desarrollador , parece que es necesario que el controlador del dispositivo para el dispositivo de terceros, pueda asignar la dirección de la GPU al dispositivo, con el fin de para realizar operaciones de DMA (secciones 1.2 y 1.3).

No estoy acostumbrado a PCIe, pero supongo que, como planea utilizar cámaras USB, se comunicarán con el controlador USB de su sistema. Así que las 2 opciones que veo son:

  1. El que mencionaste, crea tu propio host USB con capacidades RDMA, o
  2. modifique / cree un controlador USB para sus cámaras, incluidas las funciones del controlador Nvidia Kernel, para permitir que estas funciones se usen desde un programa CUDA.
respondido por el gustavovelascoh

Lea otras preguntas en las etiquetas