Member
Статус: Не в сети Регистрация: 23.12.2004 Откуда: Киев
Jordan Статья хорошая, спасибо.
Хочу обратить внимание, что подводя итоги и высчитывая некий средний показатель прироста использовать метод "средний по больнице" не совсем корректно. Не потому, что игры разные и какие-то другие субъективные факты, а исключительно с точки зрения методологии.
Чтобы продемонстрировать это наглядно, дам пример. Предположим, есть 2 видеокарты: А и B, и 2 игры 1 и 2. Для простоты пусть у видеокарт будут такой средний fps
Код:
1 2 A 100 200 B 200 100
то есть результаты прямо противоположные в разных играх.
Если принять за эталон карту A, то В в игре 1 будет результат 200%, во второй игре 50%. Используя среднее арифметическое получим 125%, то есть, согласно используемой методике, прирост составил 25%. Из исходных данных видно, что это не так, карты показывают равное относительное быстродействие. Более того, если сравнить карту А используя эталоном карту В, то мы опять получим прирост 25%, что совсем уже ни в какие ворота не лезет. Это и есть огромный недостаток данного способа общего сравнения.
Если использовать формулу вида:
общий результат = (корень н-ной степени из дальнейшей дроби)((А1/В1)*(А2/В2)*...*(Ан/Вн))
все становится на свои места, и абсурдность в результатах не возникает. То есть, по сути это гсреднее геометрическое.
Если использовать формулу вида: общий результат = (корень н-ной степени из дальнейшей дроби)((А1/В1)*(А2/В2)*...*(Ан/Вн))
Рассмотрим варианты:
Код:
1 2 A 100 100 B 100 100 -> Отношение ср. геом. = 1
Вроде бы все красиво - производительность карты A составляет 100% от B
Код:
1 2 A 200 200 B 100 100 -> Отношение ср. геом. = 2
Все еще красиво - производительность карты A составляет 200% от B
Код:
1 2 A 50 150 B 100 100 -> Отношение ср. геом. = 0.87
Уже интереснее - производительность карты A составляет 87% от B ..
Код:
1 2 A 10 190 B 100 100 -> Отношение ср. геом. = 0.44
Совсем интересно - производительность карты A составляет 44% от B ???!
Фактически, в трех примерах из четырех карты должны быть одинаковы - в комплесном тесте из двух этапов (1 и 2) они имеют одинаковый средний FPS. Поэтому метод расчета геометрического среднего не подходит.
Более логичным выглядит использование формулы (A1 + A2 + An) / (B1 + B2 + Bn).
Теперь представим тест, в котором видеокарта должна сгенерировать фиксированную последовательность кадров из разных игр - тогда лучшей картой будет та, которая сделает это за меньшее время. При этом не имеет значения, какие кадры обрабатывались дольше, какие быстрее - имеет значение лишь общее время. Тогда в предыдущую формулу нужно подставлять не FPS, а 1 / FPS.
общий результат = (1/B1 + 1/B1 + 1/Bn) / (1/A1 + 1/A1 + 1/An),
где An = значение FPS карты A в тесте n.
Код:
1 2 A 10 190 B 100 100
-> Отношение ср. геом. = 0.44 Отношение сумм FPS = 1.0 Отношение времени = 0.19
Пусть в каждом тесте видеокарта должна сгенерировать 1000 кадров. Тогда карта A справится с заданием за 105 секунд (1000/10 + 1000/190), а карта B - за 20 секунд.
Разница более, чем в 5 раз - т.е., производительность карты A составляет 19% от B - или, производительность карты B составляет 526% от A.
Таким образом, метод отношения времени выполнения дает наилучшие результаты.
Последний раз редактировалось Darij 19.09.2008 17:12, всего редактировалось 1 раз.
Раз пошло такое обсуждение, то думаю логичным скомировать сюда то, что мне прислал Грецкий! в ЛС:
Цитата:
В офисе (я использовал OpenOffice) есть функция GEOMEAN, которая и считает среднее геометрическое. Так что с формулами теперь не заморачиваться. Пример расчета я написал справа от расчета среднего арифм. Отличия примерно одинаковы: 5-7% в худшую сторону, но это следствие того, что результаты в основном в плотной группе. При большем разбросе результатов отличие от ср. арифм будет больше. Да, у среднего геометрического есть ряд особенностей: 1. Результат всегда не больше среднего арифм. Применительно к предмету обсуждения это сводится к тому, что новинки будут выглядеть не так привлекательно как раньше. Возможно, это критично. 2. Несколько серьезных падений результатов могут существенно повлиять на конечную оценку. 3. Несколько прорывов (относительно малая часть) по производительности не повлияют радикально на конечный результат. 4. Как следствие 2 и 3, к конкретным тестам надо подходить с избирательностью, поскольку плохой единичный результат может серьезно повлиять на конечную оценку. Для статьи, думаю, неактуально, поскольку она охватывает широкий круг задач и является обзорной. Но в конкретном применении это важнее.
Можно сделать ремарку: способ подсчета ср. геометрического более "честный", но влияние отдельных ухудшений значительно больше. Лично мне такой способ более импонирует, хотя при введении в массы, возможно, придется его объяснять на пальцах. Но один простой способ показать уязвимость старого метода мной уже опубкикован в том топике. Хотя насчет применения - решать тебе.
Darij ИМХО, ты берешь нереальные варианты. Во первых, только 2 игры, что в более-менее серьезном тесте нереально. Во вторых, разница в 2 или 3 раза - это довольно нехарактерно.
Реально например когда я по результатам Джордана (которые он мне любезно предоставил в виде эксель-файла) сравнивал производительность 4870 и gtx260, разница была соответственно 9% если считать ср.геом. и 11% если считать ср. арифм.
Member
Статус: Не в сети Регистрация: 23.12.2004 Откуда: Киев
Прошу прощение за отсутствие.
Darij писал(а):
Фактически, в трех примерах из четырех карты должны быть одинаковы - в комплесном тесте из двух этапов (1 и 2) они имеют одинаковый средний FPS. Поэтому метод расчета геометрического среднего не подходит.
Не согласен. Последний пример, хоть и явно искусственный, все равно наглядный. Если один из тестов в 10(!) раз хуже, как можно говорить о равности по результатам двух тестов?
Darij писал(а):
Более логичным выглядит использование формулы (A1 + A2 + An) / (B1 + B2 + Bn).
Тоже не согласен. Дальше поясню.
Darij писал(а):
Теперь представим тест, в котором видеокарта должна сгенерировать фиксированную последовательность кадров из разных игр - тогда лучшей картой будет та, которая сделает это за меньшее время.
Звучит логично и правильно. Но есть нюанс в том, что игры разные и показывают разные результаты. Если помнишь, на thg вроде, было тестирование двуядерников, одно из первых. Так вот, при одновременном запуске нескольких приложений оказалось, что больший прирост идет по тому приложению, где и так был прирост. То есть для AMD выигрывал WinRar, для П4 - кодирование видео. Причем прирост именно в процентах. Так и тут, может получиться, что при серьезном росте в одном из тестов, общая оценка улучшится, причем непропорционально.
Касательно
Darij писал(а):
общий результат = (1/B1 + 1/B1 + 1/Bn) / (1/A1 + 1/A1 + 1/An),
выглядит более приемлимо, но тоже не лишено недостатков.
Код:
1 2 A 10 40 B 20 20
Даст прирост 25% А над В. Хотя в относительном исчислении карты идентичны.
В общем вопрос не простой по правильному критерию, но ИМХО ср. геом. таки лучше.
Member
Статус: Не в сети Регистрация: 23.12.2004 Откуда: Киев
Claw Bug писал(а):
Среднее арифметическое скажет, что карты одинаковые.
Причем, это как еще мерять, если А относительно В, то да (50%+150%)/2 = 100%. А если В относительно А, то они даже не равны: (200%+66%)/2 = 133%. То есть ср. арифметическое еще зависит и от кого с кем сравнивать. Это и есть один из главных его недостатков.
Надо менять.
не только, еще имелась ввиду специфика игровых тестов - что фпс больше 60 избыточен, и на практике 50 будет заметно лучше 40, а 150 уже нисколько не лучше 100 (но тут и ср. геометрическое не особо поможет)
Member
Статус: Не в сети Регистрация: 23.12.2004 Откуда: Киев
Claw Bug Ты прав. Однако предлагаю сначала просто прийти к тому, что текущий способ измерений - ущербен. А потом можно разработать новую методику, с учетом таких замечаний, как твое.
Jordan Так какое твое отношение касательно новой методики?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения