Tienda de más de 3GB de video-marcos en la memoria, en sistemas operativos de 32 bits

StackOverflow https://stackoverflow.com/questions/41643

  •  09-06-2019
  •  | 
  •  

Pregunta

En el trabajo tenemos una aplicación para jugar a 2K (2048*1556px) OpenEXR de secuencias de la película.Funciona bien..aparte de cuando las secuencias que son más de 3 GB (muy común), entonces se tiene que descargar marcos antiguos de la memoria, a pesar del hecho de que todas las máquinas tienen 8-16GB de memoria (que es direccionable a través de la linux BIGMEM cosas).

Los cuadros tienen para él en caché en la memoria para reproducir en tiempo real.El sistema operativo es una de varias años de edad de 32 bits de Fedora (no es posible ampliable a 64 bits, para el futuro previsible).El per-proceso de prescripción es de 3GB por proceso.

Básicamente, es posible caché de más de 3 gb de datos en la memoria, de alguna manera?Mi idea inicial era la extensión de los datos entre varios procesos, pero no tengo idea de si esto es posible..

¿Fue útil?

Solución

Cómo acerca de la creación de una unidad de RAM y carga el archivo en el que ...suponiendo que la unidad de RAM soporta el BIGMEM cosas para usted.

Usted podría utilizar varios procesos:cada proceso de carga una vista del archivo como un segmento de memoria compartida, y el jugador del proceso a continuación, asigna a los segmentos a su vez según sea necesario.

Otros consejos

Una posibilidad puede ser la utilización de mmap.Usted podría asignar/desasignar diferentes partes de los datos en la misma región de memoria virtual.Usted sólo dispone de un conjunto asignado en un tiempo, pero el tiempo no fue suficiente memoria física, los datos deben permanecer residente.

A mi, lo que es un problema interesante :)

(EDITAR:Oh, acabo de leer Rob ram de la unidad de post...tengo todos emocionados por el problema...pero tener un poco más de sugerir, de modo que no voy a borrar)

Sería posible...

  1. la instalación de un multi-gigabyte de ram disco y, a continuación,
  2. modificar el programa para hacer todo lo que la lectura de la "disco"?

Me imagino que el disco ram parte es donde todo el problema sería, ya que el tamaño del disco ram sería de OS y el sistema de archivos dependientes.Usted podría tener que crear varios discos ram y tiene su código de saltar entre ellos.O tal vez usted puede configurar un RAID-0 conjunto de bandas a través de múltiples discos ram.O, si todavía OS limitaciones y usted puede permitirse el lujo de soltar un par de cola (4k?), el programa de instalación de hardware RAID-0 tira conjunto con algunas de las nuevas asombrosamente rápido, unidades de estado sólido.O...

Diversión, diversión, diversión.

Asegúrese de seguimiento!

Supongo que usted puede modificar la aplicación.Si es así, lo más fácil sería para iniciar la aplicación varias veces (una vez para cada 3GB pedazo de video), tiene cada uno sostenga un trozo de vídeo, y utilizar otro programa para sincronizar con ellos para que cada uno tome el control de la framebuffer (o de otra salida de vídeo) en turno.

La sincronización va a ser un poco desordenado, tal vez, pero se puede simplificar si cada aplicación tiene su propia framebuffer y la sincronización de puntos del programa del controlador de vídeo para la correcta framebuffer entre medio de fotogramas cuando se cambia a la siguiente aplicación.

@dbr dijo:

Hay una revisión de la máquina con una absurda de canal de fibra-RAID array que puede jugar a 2K archivos directamente desde la matriz fácilmente.El problema es con el artista-estaciones de trabajo, por lo que no sería uno de $4000 matriz de RAID, que iba a ser cientos..

Bueno, si usted puede aceptar un límite de ~30 GB, entonces tal vez una sola 36GB de la unidad SSD sería suficiente?Aquellos que van por ~US$1k cada uno, creo, y las tasas de datos puede ser suficiente.Que muy bien, quizás más barato que un puro RAM enfoque.Hay tamaños más pequeños disponibles, también.Si ~60 GB es suficiente, que probablemente podría conseguir lejos con un JBOD matriz de 2 por el doble del costo, y saltar de la controladora RAID.Asegúrese de buscar en el extremo superior de los SSD opciones--el extremo inferior se llena con glorificado de tarjetas de memoria.:P

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top