Ping transatlantique plus rapide que d’envoyer un pixel à l’écran?

808

John Carmack a tweeté ,

Je peux envoyer un paquet IP en Europe plus rapidement que je ne peux envoyer un pixel à l'écran. Comment ça va?

Et si ce n’était pas John Carmack, je le classerais sous «les interwebs étant stupides».

Mais c'est John Carmack.

Comment cela peut-il être vrai?

Pour éviter les discussions sur ce que signifie exactement le tweet, voici ce que j'aimerais obtenir une réponse:

Dans le meilleur des cas, combien de temps faut-il pour qu'un seul paquet IP soit envoyé d'un serveur situé aux États-Unis à quelque part en Europe, à partir du moment où un logiciel déclenche le paquet, jusqu'au point où il est reçu par un logiciel situé au-dessus niveau de conducteur?

Combien de temps faut-il, dans le meilleur des cas, pour qu'un pixel soit affiché à l'écran, mesuré à partir du point où un logiciel au-dessus du niveau du pilote change la valeur de ce pixel?


Même en supposant que la connexion transatlantique soit le câble en fibre optique le plus fin que l’argent puisse acheter, et que John soit assis à côté de son fournisseur d’accès, les données doivent toujours être codées dans un paquet IP, puis passer de la mémoire principale à sa carte réseau. , de là à travers un câble dans le mur dans un autre bâtiment, y sautera probablement sur quelques serveurs (mais supposons qu’il n’a besoin que d’un seul relais), se photonise à travers l’océan, reconverti en impulsion électrique par un photocapteur, et enfin interprété par une autre carte réseau. Arrêtons là.

En ce qui concerne le pixel, il s’agit d’un simple mot machine qui est envoyé dans l’emplacement PCI Express, écrit dans une mémoire tampon, qui est ensuite vidé à l’écran. Même en tenant compte du fait que les “pixels simples” entraînent probablement la transmission de la totalité de la mémoire tampon à l’affichage, je ne vois pas comment cela pourrait être plus lent: ce n’est pas comme si les bits étaient transférés “un par un” - mais plutôt sont des impulsions électriques consécutives qui sont transférées sans latence entre elles (non?).

Konrad Rudolph
la source
50
Soit il est fou ou c'est une situation inhabituelle. En raison de la vitesse de la lumière dans la fibre, vous ne pouvez pas obtenir de données des États-Unis vers l’Europe en moins de 60 millisecondes environ. Votre carte vidéo affiche un nouvel écran de pixels toutes les 17 millisecondes environ. Même avec une double mise en mémoire tampon, vous pouvez toujours battre le paquet un peu.
David Schwartz
84
@ DavidSchwartz: Vous pensez au GPU en vase clos. Oui, le processeur graphique peut effectuer beaucoup de travail en moins de 60 ms. Mais John se plaint de toute la chaîne, ce qui implique le moniteur. Savez-vous combien de temps de latence est impliqué, depuis que les données d’image sont transmises au moniteur et jusqu’à ce qu’elles soient affichées à l’écran? Le chiffre de 17ms n'a pas de sens et n'est pas pertinent. Oui, le processeur graphique prépare une nouvelle image toutes les 17 ms et l'écran affiche une nouvelle image toutes les 17 ms. Mais cela ne dit rien sur la durée pendant laquelle l’image a été en route avant son affichage
jalf
24
C'est un programmeur de jeu, et il a dit plus vite que je ne peux envoyer un pixel à l'écran ... alors peut-être que le délai de rendu des graphiques 3D est pris en compte? Bien que cela devrait être assez faible dans la plupart des jeux vidéo; ils optimisent pour la performance, pas la qualité. Et bien sûr, il y a de très fortes chances qu'il exagère (là, j'ai énoncé l'évidence, heureux?).
Bob
19
Allez quelque temps chez Best Buy et regardez tous les téléviseurs, où ils les ont tous réglés sur la même chaîne interne. Même les ensembles apparemment identiques auront un décalage notable (peut-être un quart de seconde) les uns par rapport aux autres. Mais au-delà, il faut implémenter l’ensemble du cycle de "dessin" dans l’interface utilisateur (ce qui peut impliquer la restitution de plusieurs "couches" de l’image). Et, bien sûr, si un rendu 3-D ou autre est requis, cela ajoute un retard important.
Daniel R Hicks
4
Il y a beaucoup de place pour la spéculation en question, je ne pense pas qu'il y ait une réponse parfaite à moins que vous sachiez de quoi parle réellement J.Carmack. Peut-être que son tweet n'était qu'un commentaire stupide sur une situation qu'il a rencontrée.
Baarn

Réponses:

1321

Le temps nécessaire pour envoyer un paquet à un hôte distant correspond à la moitié du temps indiqué par ping, qui mesure un temps aller-retour.

L’écran que je mesurais était un écran Sony HMZ-T1 monté sur la tête et connecté à un PC.

Pour mesurer la latence de l'affichage, j'ai un petit programme qui se trouve dans une boucle d'essorage interrogeant un contrôleur de jeu, effectuant une suppression de couleur différente et remplaçant les tampons chaque fois qu'un bouton est enfoncé. Je fais un enregistrement vidéo montrant à la fois le contrôleur de jeu et l’écran avec une caméra à 240 ips, puis compte le nombre d’images entre le moment où le bouton est enfoncé et le moment où l’écran commence à montrer un changement.

Le contrôleur de jeu est mis à jour à 250 Hz, mais il n’existe aucun moyen direct de mesurer le temps de latence sur le chemin d’entrée (je souhaiterais pouvoir toujours connecter des éléments à un port parallèle et utiliser des instructions in / out Sam). Comme expérience de contrôle, je fais le même test sur un vieil écran à tube cathodique avec retrace vertical à 170 Hz. Aero et plusieurs moniteurs peuvent introduire une latence supplémentaire, mais dans des conditions optimales, vous constaterez généralement un changement de couleur commençant à un point de l’écran (vsync désactivé) deux images à 240 Hz après la baisse du bouton. Il semble qu’il y ait environ 8 ms de latence dans le traitement USB HID , mais j’aimerais mieux le réduire à l’avenir.

Il n'est pas rare de voir les écrans LCD de bureau prendre plus de 10 images à 240 Hz pour indiquer un changement à l'écran. Le Sony HMZ en moyenne autour de 18 images, ou plus de 70 millisecondes total.

C'était dans une configuration multi-écrans, donc quelques images sont la faute du pilote.

Une certaine latence est intrinsèque à une technologie. Les écrans LCD mettent 4 à 20 millisecondes à changer, en fonction de la technologie. Les écrans LCoS à puce unique doivent mettre en mémoire tampon une image vidéo pour permettre la conversion de pixels compactés en plans de couleurs séquentiels. Les affichages laser raster nécessitent une certaine quantité de mémoire tampon pour convertir les modèles de balayage avant-arrière en modèles inversés. Un écran 3D stéréo fractionné séquentiellement ou divisé haut-bas ne peut pas être mis à jour à mi-trame la moitié du temps.

Les écrans OLED devraient être parmi les meilleurs, comme le montre un eMagin Z800 , qui est comparable à un tube cathodique à 60 Hz en temps de latence, meilleur que n’importe quel autre système non-CRT testé.

Les mauvaises performances du Sony sont dues à une mauvaise ingénierie logicielle. Certaines fonctions de télévision, telles que l'interpolation de mouvement, nécessitent la mise en mémoire tampon d'au moins une image et peuvent en tirer davantage. D'autres fonctionnalités, telles que les menus flottants, les conversions de format, la protection du contenu, etc., pourraient être implémentées en continu, mais la solution de facilité consiste simplement à mettre en tampon entre chaque sous-système, ce qui peut empiler une demi-douzaine d'images dans certains systèmes. .

C’est très regrettable, mais tout est réparable et j’espère pouvoir compter davantage sur les fabricants d’écrans à propos de la latence à l’avenir.

John Carmack
la source
216
Je voudrais ne pas avoir à verrouiller cette réponse pour les commentaires hors sujet excessifs. Nous sommes tous ravis que John ait fourni cette réponse, mais nous n'avons pas besoin de 25 commentaires exprimant tous leur gratitude, leur incrédulité ou leur enthousiasme. Je vous remercie.
nhinkle
28
Votre déclencheur USB fonctionne probablement en tant que périphérique USB à faible vitesse (trames de bus à 125usec), ce qui entraîne un retard minimal de 8 ms (problème matériel). Peut-être essayer un clavier PS2 à la place?
Boris
4
@ Marcus Lindblom par chasse pour, tu veux dire lire? Je pense que dans ce cas, la façon dont il a obtenu son numéro est tout aussi important que le numéro - le scepticisme concernant le tweet ne sera pas traité en citant un autre numéro. Le contexte aide également - il a été très directement agacé par ce moniteur spécifique avec son logiciel sous-optimal.
Jeremy
13
Il semble que vous disiez que lorsque les fabricants d’écrans LCD affirment dire un temps de réponse de 5 ms, il faut peut-être du temps au panneau brut pour changer, mais le moniteur ajoute un peu plus de temps à la mise en mémoire tampon et au traitement du signal avant de piloter le LCD. Cela ne signifie-t-il pas que les fabricants publient des spécifications fausses ou trompeuses?
Psusi
68

Certains moniteurs peuvent avoir un retard d’entrée important

Comptabiliser une connexion Internet impressionnante par rapport à un moniteur de merde et à une carte vidéo

Sources:

Console de jeu: le facteur de retard • Page 2

Donc, à 30 images par seconde, nous obtenons des performances de base de huit images / 133 ms, mais dans le deuxième clip où le jeu est tombé à 24 images par seconde, il y a un net décalage de 12 images / 200 ms entre le fait que j'appuie sur la détente et Niko qui commence l'animation de tir. C'est 200 ms plus le délai supplémentaire de votre écran. Aie.

Un affichage peut ajouter un autre 5-10ms

Ainsi, une console peut avoir jusqu'à 210 ms de décalage

Et, selon le commentaire de David, le meilleur des cas devrait être d'environ 70 ms pour l'envoi d'un paquet

Akash
la source
1
-1 Je ne pense pas que John Carmack utilise un moniteur ou une carte vidéo de mauvaise qualité. Veuillez référencer votre demande avec des sources crédibles.
Baarn
14
Désolé mais je ne vois toujours pas cela répondre vraiment à la question. La citation parle de «tirer sur la gâchette» et cela implique beaucoup plus de travail, comme dans le traitement des entrées, le rendu des scènes, etc., que l'envoi d'un pixel à l'écran. En outre, la vitesse de réaction humaine est relativement médiocre par rapport aux performances du matériel moderne. Le temps entre le type pensant avoir appuyé sur la gâchette et le tirant en fait pourrait bien constituer le goulot d'étranglement.
Konrad Rudolph
2
L'article lié montre que l'auteur de cette analyse a acheté un appareil spécial capable de vous indiquer exactement quand le bouton a été enfoncé. Je ne pense donc pas qu'ils ne font que voler des chiffres.
Melikoth
11
@ KonradRudolph: La perception est assez étrange. Il y a quelque temps, j'ai lu un article sur un contrôleur expérimental qui lisait les impulsions directement à la moelle épinière. Les gens auraient le sentiment que l'ordinateur agissait avant d'avoir cliqué, même s'il s'agissait de leur propre commande nerveuse.
Zan Lynx
11
@ Zan Lynx: C'est un effet connu. Google pour "demi seconde délai de Benjamin Libet". La conscience humaine nécessite un temps de traitement important. Tout ce qui se passe actuellement se produit réellement dans le passé. Tous vos sens vous offrent une "expérience multimédia intégrée" d'un événement d'il y a une demi-seconde. De plus, les événements semblent être "horodatés" par le cerveau. Une stimulation cérébrale directe doit être retardée par rapport à une stimulation tactile pour que le sujet puisse signaler les sensations de manière simultanée!
Kaz
35

Il est très simple de démontrer le décalage d’entrée sur les moniteurs, il suffit de coller un écran à cristaux liquides à côté d’un écran, d’afficher une horloge ou une animation remplissant l’écran et de l’enregistrer. On peut être une seconde ou plus derrière. C'est quelque chose que les fabricants d'écrans LCD ont resserré depuis que les joueurs, etc. l'ont remarqué plus.

Par exemple. Vidéo Youtube: Test de décalage d'entrée Vizio VL420M

JamesRyan
la source