Pregunta Transatlántico ping más rápido que enviar un píxel a la pantalla?


John Carmack  tuiteó,

Puedo enviar un paquete de IP a Europa más rápido de lo que puedo enviar un píxel a la pantalla. ¿Cómo fuiste eso?

Y si este no fuera John Carmack, lo archivaría bajo "el interwebs siendo tonto".

Pero este es John Carmack.

¿Cómo puede ser esto cierto?

Para evitar discusiones sobre qué significa exactamente en el tweet, esto es lo que me gustaría que me respondan:

¿Cuánto tiempo lleva, en el mejor de los casos, enviar un único paquete IP desde un servidor en los EE. UU. A algún lugar de Europa, midiendo desde el momento en que un software desencadena el paquete, hasta el punto que es recibido por un software anterior nivel de conductor?

¿Cuánto tiempo lleva, en el mejor de los casos, que se visualice un píxel en la pantalla, medido desde el punto en que un software por encima del nivel del controlador cambia el valor de ese píxel?


Incluso suponiendo que la conexión transatlántica es el mejor cable de fibra óptica que puede comprar el dinero, y que John está sentado justo al lado de su ISP, los datos todavía tienen que estar codificados en un paquete IP, pasar de la memoria principal a su tarjeta de red , desde allí a través de un cable en la pared a otro edificio, probablemente saltará a través de unos pocos servidores allí (pero supongamos que solo necesita un solo relé), se fotoniza a través del océano, se convierte de nuevo en un impulso eléctrico por un fotosensor, y finalmente interpretado por otra tarjeta de red. Vamos a detenernos allí.

En cuanto al píxel, esta es una palabra de máquina simple que se envía a través de la ranura PCI Express, escrita en un búfer, que luego se vacía a la pantalla. Incluso teniendo en cuenta el hecho de que "píxeles individuales" probablemente resulten en la transmisión del búfer de pantalla a la pantalla, no veo cómo esto puede ser más lento: no es como si los bits se transfirieran "uno por uno", sino que son impulsos eléctricos consecutivos que se transfieren sin latencia entre ellos (¿verdad?).


797


origen


O está loco o esta es una situación inusual. Debido a la velocidad de la luz en fibra, no puede obtener datos de EE. UU. A Europa en menos de 60 milisegundos en una dirección. Su tarjeta de video muestra una nueva pantalla de píxeles cada 17 milisegundos más o menos. Incluso con el doble almacenamiento en búfer, todavía puede vencer el paquete bastante. - David Schwartz
@DavidSchwartz: Estás pensando en la GPU de forma aislada. Sí, la GPU puede hacer un montón de trabajo en menos de 60 ms. Pero John se queja de toda la cadena, que involucra al monitor. ¿Sabes cuánta latencia está involucrada, a partir de los datos de imagen que se transmiten al monitor, y hasta que se muestra en la pantalla? La cifra de 17 ms no tiene sentido y es irrelevante. Sí, la GPU prepara una nueva imagen cada 17 ms, y sí, la pantalla muestra una imagen nueva cada 17 ms. Pero eso no dice nada sobre cuánto tiempo estuvo en camino la imagen antes de que se mostrara - jalf
Él es un programador de juegos, y dijo más rápido que yo puede enviar un pixel a la pantalla... ¿así que quizás sea responsable de la demora en la representación gráfica 3D? Aunque debería ser bastante bajo en la mayoría de los videojuegos; optimizan para el rendimiento, no para la calidad. Y, por supuesto, está el muy Es muy probable que exagere (ahí dije lo obvio, ¿feliz?). - Bob
Vaya a Best Buy en algún momento y vea todos los televisores, donde los tiene a todos sintonizados en el mismo canal interno. Incluso los conjuntos aparentemente idénticos tendrán un retraso notable (quizás un cuarto de segundo) relativo el uno al otro. Pero más allá de eso, tiene que implementar todo el ciclo de "dibujar" dentro de la interfaz de usuario (lo que puede implicar volver a representar varias "capas" de la imagen). Y, por supuesto, si se requiere una representación tridimensional o algo así, eso agrega un retraso significativo. - Daniel R Hicks
Hay mucho espacio para la especulación en cuestión, no creo que haya una respuesta perfecta a menos que sepas de lo que J.Carmack realmente estaba hablando. Tal vez su tweet fue solo un comentario estúpido sobre alguna situación que encontró. - Baarn


Respuestas:


El tiempo para enviar un paquete a un host remoto es la mitad del tiempo informado por ping, que mide el tiempo de ida y vuelta.

La pantalla que estaba midiendo era una Sony HMZ-T1 pantalla montada en la cabeza conectada a una PC.

Para medir la latencia de la pantalla, tengo un pequeño programa que se sienta en un bucle giratorio sondeando un controlador de juego, haciendo un claro a un color diferente e intercambiando búferes cada vez que se presiona un botón. Grabo video que muestra tanto el controlador del juego como la pantalla con una cámara de 240 fps, luego cuento el número de fotogramas entre el botón que se está presionando y la pantalla que comienza a mostrar un cambio.

El controlador del juego se actualiza a 250 Hz, pero no hay una forma directa de medir la latencia en la ruta de entrada (desearía poder conectar cosas a un puerto paralelo y usar las instrucciones de entrada / salida de Sam). Como experimento de control, hago la misma prueba en una pantalla CRT antigua con un retroceso vertical de 170 Hz. Los monitores Aero y múltiples pueden introducir latencia extra, pero en condiciones óptimas, normalmente verá un cambio de color que comienza en algún punto de la pantalla (vsync desactivado) dos cuadros de 240 Hz después de que el botón se apaga. Parece que hay 8 ms o más de latencia pasando por el USB HID procesamiento, pero me gustaría asegurarlo mejor en el futuro.

No es raro ver que los monitores LCD de escritorio tomen 10+ cuadros de 240 Hz para mostrar un cambio en la pantalla. La Sony HMZ promedió alrededor de 18 fotogramas, o más de 70 milisegundos en total.

Esto fue en una configuración de múltiples monitores, por lo que un par de cuadros son culpa del conductor.

Alguna latencia es intrínseca a una tecnología. Los paneles LCD tardan de 4 a 20 milisegundos en cambiar realmente, según la tecnología. Una ficha LCoS las pantallas deben almacenar un fotograma de video para convertir píxeles empaquetados a planos de color secuenciales. Las pantallas de trama láser necesitan una cierta cantidad de almacenamiento en búfer para convertir desde el retorno de la trama a los patrones de exploración de ida y vuelta. Una pantalla 3D estereoscópica dividida en cuadros o secuencial de arriba a abajo no puede actualizar la mitad del tiempo del cuadro medio.

OLED las pantallas deberían estar entre las mejores, como lo demuestra un eMagin Z800, que es comparable a una CRT de 60 Hz en latencia, mejor que cualquier otra prueba no CRT que he probado.

El mal rendimiento en Sony se debe a una mala ingeniería de software. Algunas funciones de TV, como la interpolación de movimiento, requieren almacenar al menos un fotograma, y ​​pueden beneficiarse de más. Otras características, como los menús flotantes, las conversiones de formato, la protección de contenido, etc., podrían implementarse de forma continua, pero la salida más fácil es simplemente almacenar un búfer entre cada subsistema, que puede acumular hasta media docena de fotogramas en algunos sistemas .

Esto es muy desafortunado, pero es todo solucionable, y espero apoyarse en los fabricantes de pantallas más sobre la latencia en el futuro.


1305



Me gustaría no tener que bloquear esta respuesta para comentarios fuera de tema excesivos. Estamos muy contentos de que John haya proporcionado esta respuesta, pero no necesitamos 25 comentarios que expresen su gratitud, incredulidad o emoción. Gracias. - nhinkle♦
Es probable que su activador USB se esté ejecutando como un dispositivo USB de baja velocidad (marcos de bus a 125 UDS) causando un retraso mínimo de 8 ms (problema de hardware). Tal vez intente con un teclado PS2 en su lugar? - Boris
@Marcus Lindblom por cazar, ¿quieres decir leer? Creo que en este caso, cómo llegó a su número es tan importante como el número: el escepticismo con respecto al tweet no se abordará citando otro número. También ayuda el contexto: fue el más directamente molesto por este monitor específico con su software subóptimo. - Jeremy
Parece que está diciendo que cuando los fabricantes de LCD afirman, un tiempo de respuesta de 5 ms, puede ser el tiempo que demora en cambiar el panel sin procesar, pero el monitor agrega bastante más tiempo para almacenar y procesar la señal antes de que realmente maneje el LCD. ¿Eso no significa que los fabricantes están publicando especificaciones falsas / engañosas? - psusi
@psusi doubledeej.blogspot.com/2009/07/...  zdnet.com/blog/ou/...  gizmodo.com/5669331/why-most-hardware-specs-are-total-bullshit  maximumpc.com/article/features/display_myths_shattered - Dan Neely


Algunos monitores pueden tener un retraso de entrada significativo

Contando con una increíble conexión a Internet en comparación con un monitor de mierda y una combinación de tarjeta de video es posible

Fuentes:

Juegos de consola: el factor de retraso • Página 2

Entonces, a 30FPS obtenemos un rendimiento de referencia de ocho fotogramas / 133ms, pero en   el segundo clip donde el juego ha caído a 24FPS, hay una clara   Retraso de 12 fotogramas / 200ms entre mí al apretar el gatillo y Niko   comenzando la animación de disparos de escopeta. Eso es 200ms más el   retraso adicional de su pantalla. Ay.

Una pantalla puede agregar otros 5-10ms

Entonces, una consola puede tener hasta 210ms de retraso

Y, según el comentario de David, el mejor caso debería ser 70 ms para enviar un paquete


67



-1 No creo que John Carmack use un monitor de mierda o una tarjeta de video. Por favor, haga referencia a su reclamo con fuentes creíbles. - Baarn
Lo siento, pero todavía no veo que esto realmente responda la pregunta. La cita habla sobre "apretar el gatillo" y esto implica mucho más trabajo, como en el procesamiento de entrada, representación de escenas, etc., que simplemente enviar un píxel a la pantalla. Además, la velocidad de reacción humana es relativamente pésima en comparación con el rendimiento del hardware moderno. El tiempo entre el chico pensando él apretó el gatillo, y realmente tirando de él, bien podría ser el cuello de botella. - Konrad Rudolph
El artículo vinculado muestra que el autor de este análisis compró un dispositivo especial que puede mostrarle exactamente cuándo se presionó el botón, por lo que no creo que solo estén volando los números. - Melikoth
@KonradRudolph: La percepción es algo bastante extraño. Hace un tiempo leí un artículo sobre un controlador experimental que leía impulsos directamente desde la médula espinal. Las personas sentirían que la computadora estaba actuando antes de hacer clic, a pesar de que era su propio comando nervioso hacer clic en lo que estaba reaccionando. - Zan Lynx
@ Lyn Lynx: este es un efecto conocido. Google para "Half Second Delay de Benjamin Libet". La conciencia humana requiere un tiempo de procesamiento significativo. Todo lo que está sucediendo ahora realmente sucedió en el pasado. Todos tus sentidos te están dando una "experiencia multimedia integrada" de un evento de hace medio segundo. Además, los eventos parecen estar marcados con el tiempo por el cerebro. ¡Una estimulación cerebral directa tiene que retrasarse en relación con una estimulación táctil para que el sujeto informe las sensaciones como simultáneas! - Kaz


Es muy simple demostrar la demora de entrada en los monitores, simplemente coloque un LCD junto a un crt y muestre un reloj o una animación que llene la pantalla y grábela. Uno puede estar un segundo o más atrás. Es algo que los fabricantes de LCD han reforzado ya que los jugadores, etc. lo han notado más.

P.ej. Video de Youtube: Prueba de retraso de entrada Vizio VL420M


33