860 votes

Un ping transatlantique plus rapide que l'envoi d'un pixel à l'écran ?

John Carmack a tweeté ,

Je peux envoyer un paquet IP en Europe plus vite que je ne peux envoyer un pixel à l'écran. C'est dingue, non ?

Et si ce n'était pas John Carmack, je classerais ça dans la catégorie "les internautes qui font les idiots".

Mais c'est John Carmack.

Comment cela peut-il être vrai ?

Pour éviter les discussions sur le sens exact du tweet, voici la réponse que j'aimerais obtenir :

Combien de temps faut-il, dans le meilleur des cas, pour qu'un seul paquet IP soit envoyé d'un serveur aux États-Unis vers un endroit en Europe, en mesurant le temps écoulé entre le moment où un logiciel déclenche le paquet et celui où il est reçu par un logiciel situé au-dessus du niveau du pilote ?

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


Même en supposant que la connexion transatlantique est le meilleur câble à fibres optiques que l'on puisse acheter, et que John est assis juste à côté de son fournisseur d'accès, les données doivent encore être codées dans un paquet IP, passer de la mémoire principale à sa carte réseau, de là passer par un câble dans le mur jusqu'à un autre bâtiment, y sauter sur quelques serveurs (mais supposons qu'elles n'aient besoin que d'un seul relais), être photonisées à travers l'océan, reconverties en impulsion électrique par un photocapteur, et enfin interprétées par une autre carte réseau. Arrêtons-nous là.

Quant au pixel, il s'agit d'un simple mot machine qui est envoyé par le connecteur PCI express, écrit dans un tampon, qui est ensuite envoyé à l'écran. Même en tenant compte du fait que les "pixels uniques" entraînent probablement la transmission de la totalité de la mémoire tampon de l'écran, je ne vois pas comment cela peut être plus lent : ce n'est pas comme si les bits étaient transférés "un par un" - il s'agit plutôt d'impulsions électriques consécutives qui sont transférées sans latence entre elles (non ?).

52 votes

Soit il est fou, soit c'est une situation inhabituelle. En raison de la vitesse de la lumière dans la fibre, vous ne pouvez pas obtenir des données des États-Unis vers l'Europe en moins de 60 millisecondes dans un sens. Votre carte vidéo produit un nouvel écran complet de pixels toutes les 17 millisecondes environ. Même avec une double mise en mémoire tampon, vous pouvez encore battre le paquet de beaucoup.

92 votes

DavidSchwartz : Vous pensez au GPU de manière isolée. Oui, le GPU peut faire beaucoup de travail en moins de 60 ms. Mais John se plaint de toute la chaîne, qui implique le moniteur. Savez-vous combien de temps de latence est impliqué, depuis la transmission des données de l'image au moniteur, jusqu'à l'affichage sur l'écran ? Le chiffre de 17 ms n'a aucun sens et n'est pas pertinent. Oui, le GPU prépare une nouvelle image toutes les 17 ms, et oui, l'écran affiche une nouvelle image toutes les 17 ms. Mais cela ne dit rien sur le temps que l'image a passé en route avant d'être affichée.

0 votes

@user1203 : C'est pourquoi j'ai dit, "même avec une double mise en mémoire tampon".

1389voto

John Carmack Points 6892

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

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

Pour mesurer la latence de l'affichage, j'ai un petit programme qui se trouve dans une boucle d'interrogation d'une manette de jeu, qui passe à une couleur différente et qui change de tampon chaque fois qu'on appuie sur un bouton. Je fais un enregistrement vidéo en montrant à la fois le contrôleur de jeu et l'écran avec une caméra de 240 fps, puis je compte le nombre d'images entre le moment où l'on appuie sur le bouton et celui où l'écran commence à montrer un changement.

Le contrôleur de jeu se met à jour à 250 Hz, mais il n'y a pas de moyen direct de mesurer la latence sur le chemin d'entrée (j'aimerais pouvoir encore câbler les choses sur un port parallèle et utiliser les instructions Sam in/out). Comme expérience de contrôle, je fais le même test sur un vieil écran CRT avec un retracement vertical de 170 Hz. Aero et les moniteurs multiples peuvent introduire une latence supplémentaire, mais dans des conditions optimales, vous verrez généralement un changement de couleur commençant à un certain point de l'écran (vsync désactivé) deux images de 240 Hz après l'abaissement du bouton. Il semble qu'il y ait une latence d'environ 8 ms dans le système d'affichage de l'écran. USB HID mais j'aimerais que cela soit mieux défini à l'avenir.

Il n'est pas rare de voir des moniteurs LCD de bureau prendre plus de 10 images de 240 Hz pour montrer un changement à l'écran. Le HMZ de Sony prend en moyenne 18 images, soit plus de 70 millisecondes au total.

Il s'agissait d'une configuration multi-moniteur, donc quelques images sont la faute du pilote.

Certaines latences sont intrinsèques à une technologie. Les panneaux LCD mettent 4 à 20 millisecondes pour changer réellement, selon la technologie. Puce unique LCoS Les écrans doivent mettre en mémoire tampon une trame vidéo pour convertir les pixels emballés en plans de couleur séquentiels. Les écrans à trame laser ont besoin d'une certaine quantité de tampon pour convertir les retours de trame en modèles de balayage en va-et-vient. Un écran 3D stéréo à trame séquentielle ou à division haut-bas ne peut pas se mettre à jour à mi-trame la moitié du temps.

OLED doivent être parmi les meilleurs, comme le montre une étude de la Commission européenne sur le sujet. eMagin Z800 Le temps de latence est comparable à celui d'un tube cathodique 60 Hz et est meilleur que celui de tout autre tube non cathodique que j'ai testé.

Les mauvaises performances du Sony sont dues à une mauvaise ingénierie logicielle. Certaines fonctions de télévision, comme l'interpolation de mouvement, nécessitent la mise en mémoire tampon d'au moins une image, et peuvent bénéficier de plus. D'autres fonctions, telles que les menus flottants, les conversions de format, la protection du contenu, etc., pourraient être mises en œuvre de façon continue, mais la solution de facilité consiste à mettre en mémoire tampon entre chaque sous-système, ce qui peut entraîner l'accumulation d'une demi-douzaine de trames dans certains systèmes.

C'est très regrettable, mais tout cela est réparable, et j'espère que les fabricants d'écrans seront plus attentifs à la latence à l'avenir.

240 votes

J'aimerais ne pas avoir à verrouiller cette réponse pour cause de 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 excitation. Merci.

32 votes

Votre déclencheur USB fonctionne probablement comme un périphérique USB à faible vitesse (trames de bus à 125usec) causant un retard minimal de 8ms (problème matériel). Essayez peut-être un clavier PS2 à la place ?

3 votes

Il serait utile que le délai d'obtention du moniteur soit plus clairement exprimé. J'ai dû chercher un peu pour trouver 70 ms dans votre réponse (par ailleurs bien écrite) :)

73voto

Jason Galvin Points 113

Certains moniteurs peuvent présenter un décalage d'entrée important

Si l'on tient compte d'une excellente connexion Internet par rapport à un écran et une carte vidéo de mauvaise qualité, c'est possible.

Sources :

Jeux sur consoles : Le facteur de retard - Page 2

Ainsi, à 30 images par seconde, nous obtenons des performances de base de huit images/133 ms, mais en le deuxième clip où le jeu est tombé à 24FPS, il y a un retard clair de 12 12 images/200ms entre le moment où j'appuie sur la gâchette, et Niko commence l'animation de tir du fusil. C'est 200ms plus le retard supplémentaire de votre écran. Ouch.

Un écran peut ajouter 5 à 10 ms supplémentaires.

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

Et, conformément au commentaire de David, le meilleur cas devrait être d'environ 70 ms pour l'envoi d'un paquet.

1 votes

-Je ne pense pas que John Carmack utilise un écran ou une carte vidéo de mauvaise qualité. Veuillez référencer votre affirmation avec des sources crédibles.

0 votes

@WalterMaier-Murdnelch a ajouté la source. C'est une console, mais j'imagine qu'un PC aurait des décalages similaires.

14 votes

Désolé mais je ne vois toujours pas comment cela répond à la question. La citation parle d'"appuyer sur la gâchette", ce qui implique beaucoup plus de travail, comme le traitement des entrées, le rendu de la scène, etc. De plus, la vitesse de réaction humaine est relativement faible par rapport aux performances du matériel moderne. Le temps entre le gars réflexion qu'il a appuyé sur la gâchette, et qu'il l'a réellement fait, pourrait bien être le goulot d'étranglement.

41voto

Spidey Points 660

Il est très simple de démontrer le décalage d'entrée sur les moniteurs, il suffit de placer un écran LCD à côté d'un écran CRT et de montrer une horloge ou une animation remplissant l'écran et de l'enregistrer. On peut être en retard d'une seconde ou plus. Les fabricants d'écrans LCD ont pris des mesures plus strictes à cet égard depuis que les joueurs, etc. l'ont remarqué.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X