Question Transatlantic ping plus rapide que d'envoyer un pixel à l'écran?


John Carmack  tweeté,

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

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 je souhaiterais obtenir:

Combien de temps faut-il, dans le meilleur des cas, pour envoyer un paquet IP unique d'un serveur américain vers quelque part en Europe, à partir du moment où le logiciel déclenche le paquet, jusqu'à ce qu'il soit reçu par un logiciel ci-dessus? niveau pilote?

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


Même en supposant que la connexion transatlantique soit le meilleur câble en fibre optique que l’argent puisse acheter, et que John se trouve juste à côté de son FAI, les données doivent encore être encodées dans un paquet IP, passer de la mémoire principale à sa carte réseau. , de là, à travers un câble dans le mur, dans un autre bâtiment, va probablement traverser quelques serveurs (mais supposons qu’il ne nécessite qu’un seul relais), se photonise à travers l’océan, reconverti en impulsion électrique par un photocapteur, et finalement interprété par une autre carte réseau. Arrêtons-nous là.

En ce qui concerne le pixel, il s'agit d'un simple mot machine qui est envoyé sur le slot PCI Express, écrit dans un tampon, qui est ensuite vidé à l'écran. Même en tenant compte du fait que les "pixels uniques" entraînent probablement la transmission de la totalité du tampon de l’écran à l’écran, je ne vois pas comment cela peut être plus lent: ce n’est pas comme les bits sont transférés "un par un". sont des impulsions électriques consécutives qui sont transférées sans latence entre elles (droite?).


797
2018-05-01 09:30


origine


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 des données des États-Unis vers l’Europe en moins de 60 millisecondes. Votre carte vidéo émet un nouvel écran de pixels toutes les 17 millisecondes environ. Même avec un double tampon, vous pouvez toujours battre le paquet un peu. - David Schwartz
@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 la chaîne entière, qui implique le moniteur. Savez-vous combien de temps de latence est impliqué, des données d'image sont transmises au moniteur, et jusqu'à ce qu'il soit affiché à l'écran? Le chiffre de 17ms est sans signification et sans importance. Oui, le GPU 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 est en route avant qu’elle ne soit affichée - jalf
Il est un programmeur de jeu, et il a dit plus rapide que je peut envoyer un pixel à l'écran... alors peut-être tenir compte du délai de rendu graphique 3D? Bien que cela devrait être assez faible dans la plupart des jeux vidéo; ils optimisent les performances et non la qualité. Et bien sûr, il y a la très il a de fortes chances d’exagérer (là, j’ai déclaré l’évidence, heureux?). - Bob
Allez dans Best Buy quelque temps et regardez tous les téléviseurs, où ils sont tous réglés sur la même chaîne interne. Même des ensembles apparemment identiques auront un décalage notable (peut-être un quart de seconde) l'un par rapport à l'autre. Mais au-delà de cela, il faut implémenter tout le cycle "dessiner" dans l'interface utilisateur (ce qui peut impliquer le rendu de plusieurs "couches" de l'image). Et, bien sûr, si un rendu 3D ou autre est nécessaire, cela ajoute un délai important. - Daniel R Hicks
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 ce que J.Carmack parlait vraiment. Peut-être que son tweet était juste un commentaire stupide sur une situation qu'il a rencontrée. - Baarn


Réponses:


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

L’affichage mesuré était un Sony HMZ-T1 affichage monté sur la tête connecté à un PC.

Pour mesurer la latence de l'écran, j'ai un petit programme qui se trouve dans une boucle de rotation interrogeant un contrôleur de jeu, effectuant une opération de définition d'une couleur différente et échangeant des tampons chaque fois qu'un bouton est pressé. J'ai enregistré une vidéo montrant à la fois le contrôleur de jeu et l'écran avec une caméra 240 i / s, puis compte le nombre d'images entre le bouton pressé et l'écran commençant à afficher un changement.

Le contrôleur de jeu se met à jour à 250 Hz, mais il n’existe aucun moyen direct de mesurer la latence sur le chemin d’entrée (je souhaiterais pouvoir encore connecter des éléments à un port parallèle et utiliser des instructions Sam in / out). En tant qu'expérience de contrôle, je fais le même test sur un ancien écran CRT avec un retour vertical de 170 Hz. Aero et plusieurs moniteurs peuvent introduire une latence supplémentaire, mais dans des conditions optimales, vous verrez généralement un changement de couleur commençant à un moment donné sur l'écran (vsync désactivé) deux images à 240 Hz après la fermeture du bouton. Il semble qu'il y ait environ 8 ms de latence passant par le USB HID traitement, mais je voudrais mieux le comprendre à l’avenir.

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

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

Une certaine latence est intrinsèque à une technologie. Les écrans LCD prennent entre 4 et 20 millisecondes pour changer, en fonction de la technologie. Puce unique LCoS les affichages doivent mettre en mémoire tampon une image vidéo pour convertir des pixels compactés en plans de couleur séquentiels. Les affichages laser raster nécessitent une certaine quantité de mémoire tampon pour convertir des modèles de retour matriciel en modes de balayage avant / arrière. Un écran 3D stéréo divisé en séquence ou en haut ne peut pas mettre à jour la moitié de l'image au milieu de l'image.

OLED les affichages devraient être parmi les meilleurs, comme démontré par un eMagin Z800, qui est comparable à un CRT de 60 Hz en latence, mieux que tout autre non-CRT que j'ai testé.

Les mauvaises performances sur le Sony sont dues à une ingénierie logicielle médiocre. Certaines fonctions TV, telles que l'interpolation de mouvement, nécessitent une mise en mémoire tampon d'au moins une image et peuvent en bénéficier davantage. D'autres fonctionnalités, telles que les menus flottants, les conversions de format, la protection du contenu, etc., peuvent être implémentées en continu, mais la solution simple consiste simplement à mettre en mémoire tampon chaque sous-système .

C'est très regrettable, mais tout est réparable, et j'espère que les fabricants d'affichage pourront mieux se pencher sur la latence à l'avenir.


1305
2018-05-01 14:24



J'aimerais ne pas avoir à verrouiller cette réponse pour des 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♦
Votre déclencheur USB fonctionne probablement comme un périphérique USB basse vitesse (trames de bus à 125 usec), ce qui entraîne un délai minimal de 8 ms (problème matériel). Peut-être essayer un clavier PS2 à la place? - Boris
@Marcus Lindblom par chasse, tu veux dire lire? Je pense que dans ce cas, Comment il est arrivé à son numéro est tout aussi important que le nombre - le scepticisme concernant le tweet ne va pas être résolu en citant un autre numéro. De plus, le contexte aide - il était le plus directement agacé par ce moniteur spécifique avec son logiciel sous-optimal. - Jeremy
Il semblerait que vous disiez que lorsque les fabricants d’afficheurs LCD affirment un temps de réponse de 5 ms, cela peut prendre du temps, mais le moniteur ajoute un peu plus de temps à la mise en mémoire tampon et au traitement du signal. LCD. Cela ne signifie-t-il pas que les fabricants publient des spécifications fausses / trompeuses? - 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


Certains moniteurs peuvent avoir un décalage important

Compte pour une connexion Internet impressionnante par rapport à un moniteur de merde et une carte vidéo, c'est possible

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 en   le deuxième clip où le jeu est tombé à 24FPS, il y a un clair   12 images / 200ms de délai entre le déclenchement de la gâchette et Niko   commencer l'animation de tir de fusil. C'est 200ms plus le   délai supplémentaire de votre écran. Aie.

Un affichage peut ajouter un autre 5-10ms

Ainsi, une console peut avoir jusqu'à 210ms de retard

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


67
2018-05-01 10:26



-1 Je ne pense pas que John Carmack utilise un moniteur de merde ou une carte vidéo. Veuillez faire référence à votre demande avec des sources crédibles. - Baarn
Désolé mais je ne vois toujours pas cela répondre vraiment à la question. La citation parle de "tirer sur le déclencheur" et cela implique beaucoup plus de travail, comme dans le traitement des entrées, le rendu de la scène, etc., que d'envoyer un pixel à l'écran. En outre, la vitesse de réaction humaine est relativement faible par rapport aux performances matérielles modernes. Le temps entre le gars en pensant il a tiré sur la gâchette et en tirant réellement, pourrait bien être le goulot d'étranglement. - Konrad Rudolph
L'article lié montre que l'auteur de cette analyse a acheté un appareil spécial qui peut vous montrer exactement quand le bouton a été pressé, donc je ne pense pas qu'ils soient juste en train d'emporter les chiffres. - Melikoth
@KonradRudolph: La perception est assez bizarre. Il y a quelque temps, j'ai lu un article sur un contrôleur expérimental qui lit les impulsions directement sur la moelle épinière. Les gens sentiraient que l'ordinateur agissait avant d'avoir cliqué, même si c'était leur propre commande nerveuse de cliquer dessus. - Zan Lynx
@Zan Lynx: Ceci est un effet connu. Google pour "Benjamin Libet's Half Second Delay". La conscience humaine nécessite un temps de traitement important. Tout ce qui se passe en ce moment se passe 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 rapporte les sensations comme simultanées! - Kaz


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

Par exemple. Vidéo Youtube: Test de Lag Entrée Vizio VL420M


33
2018-05-03 10:31