Не так давно мы анонсировали новую открытую методику тестирования на скорость компрессии видеофайлов, и разумеется, после этого сразу же посыпались по почте вопросы: «Ну, хорошо, методика есть, методика открыта. А тесты-то где?!». Не скроем: соблазн выпустить одновременно методическую и тестовую статьи был, и был он велик. Тем не менее, удержавшись от него, мы оказались правы: сразу же после выхода версии нашего тестового пакета 1.0, поступило такое количество пожеланий, замечаний и уточнений, что за каких-то четыре дня он подвергся двум кардинальным переделкам и бессчетному количеству мелких правок (спасибо всем читателям, что приняли участие в этом процессе!), дорастя до версии 1.6. Ну и кому были бы сейчас нужны результаты первого релиза? Разве что коллекционерам…
Однако совершенству, как известно, предела нет, но когда-то следует и остановиться. Остановившись, мы встали перед нелегким выбором: с каких же конфигураций начать тесты? Что интереснее всего? Было принято решение с выбором особенно не эстетствовать, и взять тему «гарантированно хитовую» вечный и бесконечный спор Intel vs. AMD. Таким образом, первая тестовая статья, сделанная по новой методике, проста и незамысловата, а основные герои всем давно знакомы: это Intel Pentium 4 3.2 ГГц и AMD Athlon XP 3200+ (Barton, 400 MHz FSB, 512 КБ L2). Банально, конечно, но, тем не менее, по-прежнему весьма интересно.
Конфигурации тестовых стендов особых вопросов не вызывали: мощным процессорам мощное окружение. Поэтому в качестве компаньона Pentium 4 выступила плата на базе чипсета i875P (ASUS P4C800), а для Athlon XP был взят продукт на базе NVIDIA nForce2 Ultra 400 (Albatron K18D Pro II). Прочее оснащение стандартно: 512 МБ DDR400 SDRAM (2 модуля по 256 МБ), жесткий диск Western Digital WD360 («Raptor»), Windows XP Professional, ну и соответствующее ПО, детально рассмотренное в описании методики.
Результаты «рипперских» тестов
Итак, начнем обещанное сравнение. Для начала пройдемся по тестам, которые согласно описанию методики относятся к рипперским. Справка: рипперами (в данном контексте) называют людей, перегоняющих контент с лицензионных DVD на обычные CD. Будем при этом считать, что они просто делают копии честно приобретенных ими DVD для своих собственных, внутренних целей… И начнем мы рассмотрение результатов данных тестов, разумеется, со все еще наиболее популярного среди отечественной рипперской братии MPEG4-кодека DivX.
Легко заметить, что Athlon XP 3200+ довольно ощутимо проигрывает Pentium 4 3.2 ГГц около 20%. Также легко заметить, что включение/отключение поддержки Hyper-Threading на результаты совершенно не влияет: похоже, ни DivX, ни VirtualDub(Mod) использовать многопроцессорность не могут. В общем-то, никто и не обещал, но так иногда хочется надеяться на лучшее…
Нет, это даже не шок… Это просто реальное ощущение человека, ударенного обухом по голове… Pentium 4 в два раза (!!!) медленнее Athlon XP! Убийственный результат. Настолько убийственный, что мы, судя по всему, посвятим исследованию работы кодека XviD с Athlon XP и Pentium 4 отдельный материал. Соответствующие тесты уже проводятся, и по предварительным результатам пока можно сказать только одно: автоматическое определение используемых вариантов оптимизации под дополнительные наборы SIMD-инструкций (MMX, 3DNow!, SSE, SSE2), у кодека XviD работает весьма своеобразно. При взгляде на достигаемый с помощью этой «автоматизации» эффект, иногда даже кажется, что лучше бы она у него вообще не работала…
Остается только добавить, что влияния Hyper-Threading на производительность этого кодека также не обнаружено (кое-какая разница есть, но настолько мизерная, что вполне может быть списана на погрешность измерений). Однако в отличие от DivX, над возможностью задействования SMP по крайней мере ведется какая-то видимая глазу работа: на одной из закладок в настройках кодека есть упоминание «количества нитей» в качестве одной из опций. Правда, увы, пока что этот пункт недоступен для изменения.
Продукты Microsoft в общем-то сравнительно быстро подхватывают все новомодные веяния, поэтому наличие у кодека Windows Media Video реально работающей поддержки Hyper-Threading совершенно не удивительно. Удивительно то, что именно за счет этого Pentium 4 и удается вырвать победу у Athlon XP! С отключенным Hyper-Threading он проигрывает процессору AMD достаточно ощутимо, но как только у нас появляется второй виртуальный CPU все сразу же изменяется с точностью до наоборот. Что ж, первая ласточка от Hyper-Threading оказалась приятной. Однако никто не говорит, что они все будут такими…
Совершенно иная картина. В обоих случаях Pentium 4 опережает Athlon XP, и в одном из них даже существенно, но… именно в случае с отключенной поддержкой Hyper-Threading! Помнится, как-то в конференции ваш покорный слуга заявлял, что приложений, в которых включение HT может приводить к снижению производительности, уже не осталось. По крайней мере, если не использовать программное обеспечение года этак 1995-го :). Выходит, ошибался. Однако если вы думаете, что на этом вопрос о совместимости (и уместности) включения Hyper-Threading при кодировании видео в Mainconcept MPEG Encoder закрыт раз и навсегда то вот тут-то уже ошиблись вы…
Результаты «режиссерских» тестов
А вот и раздел, посвященный режиссерам-любителям, вооруженным цифровыми DV-видеокамерами. Они, как уже было сказано в описании нашей открытой методики, всяческими DivX’ами и прочими XviD’ами до сих пор брезгуют, предпочитая старый добрый MPEG2. Программ для кодирования в этот формат существует довольно много, но мы выбрали всего две (судя по всему, самые популярные) Mainconcept MPEG Encoder и Canopus ProCoder. И раз уж рипперская секция закончилась у нас именно на первом, то с него же и начнем режиссерскую.
Помните как несколькими абзацами выше мы обещали, что разборки с Hyper-Threading еще не закончены? Ну так вот: даже при использовании одной и той же программы (!) простая смена формата компрессии легко превращает минус в плюс! Парадокс, но факт кодированию MPEG1 в Mainconcept MPEG Encoder Hyper-Threading мешает, а вот кодированию MPEG2 наоборот, помогает! С чем это может быть связано? Разумеется, не имея кода программы на руках, мы можем только предполагать. Однако одно предположение все-таки есть: а что если разработчики Mainconcept просто «забросили» MPEG1? Над движком кодирования MPEG2 потрудились, отладили, вылизали, проверили… а в движке для MPEG1 просто добавили поддержку многопоточности как таковую, но даже не удосужились проверить, к чему приводит ее включение. В качестве варианта почему бы и нет? MPEG1 формат старый, популярность его постепенно идет на убыль, вот и решили видимо ограничиться формальными заявлениями: «да, кодирование MPEG1 у нас тоже поддерживает Hyper-Threading». А как поддерживает это уже другой вопрос…
Про Athlon XP 3200+ сказать особенно нечего он проигрывает Pentium 4 3.2 ГГц в любом варианте, а в наилучшем из них довольно сильно. Учитывая результаты этой же программы в случае с MPEG1, можно предположить, что мы наблюдаем сложившееся предпочтение. Хотя, справедливости ради, отметим: поддержка 3DNow!, E3DNow! и SSE у Mainconcept MPEG Encoder также присутствует, и наличие у Athlon XP совместимости с набором команд SSE данная программа определяет корректно. По крайней мере, если верить ее собственным диагностическим сообщениям. Да и как-то не хочется упрекать известных своей педантичностью немцев в небрежении платформой AMD, не имея на это достаточных оснований.
Достаточно спокойный тест, различия минимальны. Canopus ProCoder практически игнорирует наши попытки заставить его отдать предпочтения какой-то технологии или какому-то процессору: что Pentium 4, что Athlon XP, включена Hyper-Threading или нет программе почти все равно. Можно, конечно, определить формального победителя (это все-таки Pentium 4 3.2 ГГц), но лидерство это действительно только формальное разница даже в самом худшем для Athlon XP 3200+ случае составляет не более 9 процентов. Как мы уже однажды писали, такой разницы вполне достаточно для того, чтобы пролиться бальзамом на душу поклонникам Pentium 4, но явно слишком мало для того, чтобы заставить перейти на эту платформу поклонников Athlon XP.
Общие выводы
Все-таки явным победителем в общем зачете является процессор Intel. Он достаточно убедительно выигрывает в подтестах DivX, Windows Media Video, MPEG1 (даже с учетом «непоняток» с Hyper-Threading), и в обоих подтестах на кодирование MPEG2, причем в одном из них довольно серьезно. Несколько омрачают данное праздничное для поклонников Pentium 4 событие, во-первых, наличие реально видимого замедления от использования Hyper-Threading в подтесте на кодирование MPEG1 с помощью Mainconcept MPEG Encoder, ну и во-вторых, конечно же более чем странное поведение кодека XviD. И ладно бы отсутствовала в нем поддержка дополнительных наборов команд тогда все можно было бы списать на преимущество Athlon XP при использовании классического FPU. Но нет, все заявлено! И 3DNow! в двух его разновидностях, и SSE, и даже SSE2.
Впрочем, как было сказано выше, к исследованию данного вопроса мы вернемся в ближайшее время. Ну а пока остается сделать финальный вывод: Pentium 4 в большинстве наших тестов оказался быстрее. С другой стороны, Athlon XP с разгромным счетом тоже ни разу не проиграл, а вот выиграть именно в таком ключе смог. Почти наверняка исключительно благодаря безалаберности некоторых разработчиков, но это уже другой вопрос…