Вопрос Трансатлантический пинг быстрее, чем отправка пикселя на экран?


Джон Кармак  чирикнул,

Я могу отправить IP-пакет в Европу быстрее, чем я могу отправить пиксель на экран. Как это так?

И если бы это был не Джон Кармак, я бы подал его под «переплетения, которые были глупыми».

Но это Джон Кармак.

Как это может быть правдой?

Чтобы избежать дискуссий о том, что именно подразумевается в твите, вот что я хотел бы получить:

Как долго в лучшем случае требуется получить один IP-пакет, отправленный с сервера в США, где-то в Европе, с момента, когда программное обеспечение запускает пакет, до такой степени, что оно получено с помощью программного обеспечения выше уровень драйвера?

Как долго в лучшем случае требуется, чтобы пиксель отображался на экране, измеренный от точки, в которой программное обеспечение выше уровня драйвера меняет значение этого пикселя?


Даже если предположить, что трансатлантическая связь - это лучший волоконно-оптический кабель, который могут купить деньги, и что Джон сидит рядом с его интернет-провайдером, данные все равно должны быть закодированы в IP-пакете, получить от основной памяти до его сетевой карты , оттуда через кабель в стене в другое здание, вероятно, перепрыгнет через несколько серверов там (но давайте предположим, что ему просто нужно одно реле), фотонизирует через океан, преобразуется обратно в электрический импульс фотодатчиком, и, наконец, интерпретируется другой сетевой картой. Давайте остановимся.

Что касается пикселя, это простое машинное слово, которое отправляется через слот PCI Express, записанный в буфер, который затем очищается от экрана. Даже учитывая тот факт, что «одиночные пиксели», вероятно, приводят к тому, что весь экранный буфер передается на дисплей, я не вижу, как это может быть медленнее: это не так, как биты передаются «один за другим» - скорее, они являются последовательными электрическими импульсами, которые передаются без задержки между ними (справа?).


797
2018-05-01 09:30


происхождения


Либо он сумасшедший, либо это необычная ситуация. Из-за скорости света в волокне вы не можете получить данные из США в Европу менее чем за 60 миллисекунд в одну сторону. Ваша видеокарта выдает весь новый экран пикселей каждые 17 миллисекунд или около того. Даже с двойной буферизацией вы все равно можете обыграть пакет. - David Schwartz
@DavidSchwartz: Вы думаете о GPU в изоляции. Да, GPU может выполнять большую работу менее чем за 60 мс. Но Джон жалуется на всю цепочку, в которую входит монитор. Знаете ли вы, сколько латентности задействовано, из данных изображения передается на монитор, и пока он не отображается на экране? 17-миллиметровая фигура бессмысленна и не имеет значения. Да, GPU готовит новое изображение каждые 17 мс, и да, на экране отображается новое изображение каждые 17 мс. Но это ничего не говорит о том, как долго изображение было на пути до его отображения - jalf
Он программист, и он сказал: быстрее, чем я может отправить пиксель на экран... так что, возможно, задержка 3D-рендеринга графики? Хотя в большинстве видеоигр это должно быть довольно низким; они оптимизируются для производительности, а не качества. И, конечно, есть очень высокий шанс, что он просто преувеличивает (там, я сказал, очевидно, счастлив?). - Bob
Идите в Best Buy некоторое время и смотрите все телевизоры, где они все настроены на один и тот же внутренний канал. Даже, очевидно, идентичные наборы будут иметь заметное (возможно, четвертьсекундное) отставание относительно друг друга. Но помимо этого необходимо реализовать весь цикл «рисования» внутри пользовательского интерфейса (который может включать повторное рендеринг нескольких «слоев» изображения). И, конечно же, если требуется трехмерное рендеринг или некоторые такие, что добавляет значительную задержку. - Daniel R Hicks
Существует много возможностей для размышлений, я не думаю, что есть прекрасный ответ, если вы не знаете, о чем Дж. Кармак действительно говорил. Возможно, его твит был всего лишь глупым комментарием о ситуации, с которой он столкнулся. - Baarn


ответы:


Время отправки пакета на удаленный хост составляет половину времени, о котором сообщает ping, что измеряет время в оба конца.

Дисплей, который я измерял, был Sony HMZ-T1 головной дисплей, подключенный к ПК.

Чтобы измерить задержку отображения, у меня есть небольшая программа, которая сидит в цикле вращения, опросив игровой контроллер, делая четкость к другому цвету и заменяя буферы всякий раз, когда нажимается кнопка. I видеозапись, показывающая как игровой контроллер, так и экран с камерой 240 кадров в секунду, затем подсчитывает количество кадров между нажатой кнопкой и экран, начинающий показывать изменение.

Контроллер игры обновляется с частотой 250 Гц, но нет прямого способа измерения латентности входного пути (я бы хотел, чтобы я все еще мог подключаться к параллельному порту и использовать в / из инструкций Сэма). В качестве контрольного эксперимента я делаю тот же тест на старом дисплее CRT с вертикальным обратным проходом 170 Гц. Aero и несколько мониторов могут вводить дополнительную задержку, но при оптимальных условиях вы обычно увидите изменение цвета, начиная с некоторой точки на экране (vsync disabled) два кадра 240 Гц после нажатия кнопки. Кажется, есть 8 мс времени ожидания USB HID но я хотел бы улучшить это в будущем.

Нередко можно видеть, что настольные ЖК-мониторы занимают 10 + 240 Гц кадров, чтобы показать изменения на экране. Sony HMZ составляла в среднем около 18 кадров или 70 + миллисекунд.

Это было в настройке мультимонитора, поэтому пара кадров - это ошибка драйвера.

Некоторая латентность является неотъемлемой частью технологии. В зависимости от технологии ЖК-панели занимают 4-20 миллисекунд. Один чип LCoS дисплеи должны буферизировать один видеокадр для преобразования из упакованных пикселей в последовательные цветные плоскости. Лазерным растровым дисплеям требуется некоторое количество буферизации для преобразования из растрового возврата в обратные и четвертые шаблоны сканирования. Стереофонический 3D-дисплей с растровым или верхним дном не может обновить середину кадра в два раза.

OLED дисплеи должны быть одними из лучших, о чем свидетельствует eMagin Z800, что сопоставимо с CRT 60 Гц в латентности, лучше, чем любой другой не-CRT, который я тестировал.

Плохая производительность на Sony связана с плохой разработкой программного обеспечения. Некоторые функции телевизора, такие как интерполяция движения, требуют буферизации, по крайней мере, одного кадра и могут выиграть от большего количества. Другие функции, такие как плавающие меню, преобразования форматов, защита содержимого и т. Д., Могут быть реализованы потоковым образом, но простой выход - это просто буфер между каждой подсистемой, которая может накапливать до полудюжины кадров в некоторых системах ,

Это очень неудачно, но все это исправление, и я надеюсь, что в будущем будущие производители больше ориентируются на латентность.


1305
2018-05-01 14:24



Я бы не хотел блокировать этот ответ для чрезмерных комментариев вне темы. Мы все взволнованы тем, что Джон дал этот ответ, но нам не нужно 25 комментариев, выражающих их благодарность, недоверие или волнение. Спасибо. - nhinkle♦
Возможно, ваш USB-триггер работает как низкоскоростное устройство USB (шины с частотой 125usec), что приводит к минимальной задержке в 8 мс (проблема с аппаратным обеспечением). Может быть, вместо этого попробуйте клавиатуру PS2? - Boris
@Marcus Lindblom от охоты, вы имеете в виду читать? Я думаю, в этом случае, как он добрался до своего номера, так же важно, как и число - скептицизм в отношении твита не будет рассмотрен путем цитирования другого номера. Также контекст помогает - его больше всего раздражал этот конкретный монитор с его неоптимальным программным обеспечением. - Jeremy
Похоже, вы говорите, что когда производители ЖК-телевизоров утверждают, что время отклика 5 мс, это может быть время, когда требуется, чтобы необработанная панель изменилась, но монитор добавляет немного больше времени для буферизации и обработки сигнала, прежде чем он начнет управлять ЖК-дисплей. Разве это не означает, что производители публикуют ложные / вводящие в заблуждение спецификации? - 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


Некоторые мониторы могут иметь значительный входной лаг

Учет потрясающего интернет-соединения по сравнению с дерьмовым монитором и видеокартой

Источники:

Консольная игра: фактор запаздывания • Страница 2

Таким образом, при 30FPS мы получаем базовую производительность в восемь кадров / 133 мс, но в   второй клип, в котором игра упала до 24FPS, есть ясный   12 кадров / 200 мс задержка между мной, потянув за курок, и Niko   начиная анимацию стрельбы дробовиком. Это 200 мс плюс   дополнительная задержка с вашего экрана. Уч.

Дисплей может добавить еще 5-10 мс

Таким образом, консоль может иметь до 210 мс задержки

И, согласно комментарию Давида, лучший случай должен составлять около 70 мс для отправки пакета


67
2018-05-01 10:26



-1 Я не думаю, что Джон Кармак использует дерьмовый монитор или видеокарту. Просьба ссылаться на свою претензию с достоверными источниками. - Baarn
Извините, но я до сих пор не вижу, чтобы это действительно отвечало на вопрос. Цитата рассказывает о «нажатии на триггер», и это подразумевает гораздо большую работу, например, при обработке ввода, рендеринг сцены и т. Д., Чем просто отправку пикселя на экран. Кроме того, скорость реакции человека относительно паршивая по сравнению с современными аппаратными характеристиками. Время между парнем мышление он нажал на курок, и на самом деле потянул его, вполне может быть узким местом. - Konrad Rudolph
Связанная статья показывает, что автор этого анализа купил специальное устройство, которое может показать вам, когда нажата кнопка, поэтому я не думаю, что они просто прикрывают номера. - Melikoth
@KonradRudolph: Восприятие довольно странное. Я недавно прочитал статью об экспериментальном контроллере, который читал импульсы непосредственно со спинного мозга. Люди чувствовали бы, что компьютер действовал до того, как они нажали, хотя это была их собственная нервная команда, на которую он реагировал. - Zan Lynx
@ Zan Lynx: Это известный эффект. Google за «вторую половину задержки» Бенджамина Либета. Человеческое сознание требует значительного времени обработки. Все, что думает, что происходит сейчас, на самом деле произошло в прошлом. Все ваши чувства дают вам «интегрированный мультимедийный опыт» в этом событии за пол-секунды назад. Кроме того, события, как представляется, «отпечатаны во времени» мозгом. Прямая стимуляция мозга должна быть отложена относительно тактильной стимуляции, чтобы субъект сообщал о ощущениях одновременно! - Kaz


Очень просто продемонстрировать задержку ввода на мониторах, просто вставьте lcd рядом с crt и покажите часы или анимацию, заполняющую экран, и запишите его. Один может быть вторым или более сзади. Это то, что производители ЖК-телевизоров ужесточили, так как геймеры и т. Д. Заметили это больше.

Например. Видео Youtube: Тест входного лазера Vizio VL420M


33
2018-05-03 10:31