Введение
В начале 2010 года мы опубликовали статьи “Проблемы 2D-ускорения под Windows: не все видеокарты одинаковы” и “Проблемы 2D-ускорения под Windows. Часть II“. Как вы помните, у нас возникли нарекания по поводу 2D-производительности под Windows 7 в приложениях, использующих GDI – причём даже с самыми новыми драйверами, а также мы столкнулись с нерешёнными проблемами при прямом выводе в видимую область дисплея.
В упомянутых статьях мы также описывали “парадокс диспетчера задач”. Он оказался одной из причин, почему мы не смогли повторить некоторые измерения, да и мы получали разные результаты на схожих системах. Но об этом мы ещё поговорим.
Обещания остаются обещаниями
Представители AMD/ATI изначально были скептически настроены к выявленным нами проблемам. Однако путём тестов и живого общения с разработчиками драйверов, выявленное нами “узкое место” было локализовано и затем устранено. Повторяемость проблемы неизбежно привела к оптимизации драйверов, да и AMD публично объявила о том, что будет активно решать проблему.
В документации к драйверам Catalyst 10.4 было указано, что помимо других исправлений и улучшений, новая версия обеспечивает увеличение производительности в 2D-приложениях и тестах GDI под Windows 7. Слово “тесты” нам очень понравилось, поскольку, как оказалось в итоге, наш тест Tom2D принёс немалую пользу. Но позвольте начать с прямого сравнения производительности под разными версиями драйверов.
Как можно видеть на приведённой выше диаграмме, “новые” функции, объявленные в документации Cat. 10.4, появились ещё в предыдущей версии. В любом случае, разработчики драйверов постарались на славу, и нам всегда нравится выражать благодарность за проделанную работу. Мы искренне рекомендуем пользователям видеокарт использовать самые последние драйверы под Windows 7.
В принципе, наша основная проблема решена, но в данной статье мы постараемся немного углубиться в данную тему и предоставить вам некоторые интересные детали о тестах. Помимо отдельных сравнений, мы обсудим “парадокс”, который первоначально привёл к некорректным результатам. И некоторые вопросы остались без ответа даже в нынешней статье.
Тестовая конфигурация
Тестовая система у нас использовалась та же самая, что и в предыдущих статьях.
Тестовая конфигурация | |
CPU | Core 2 Quad Q6600, степпинг G0, частота 3,0 ГГц |
Память | 8 Гбайт DDR2-1066 CL5 |
Материнская плата | DFI LANparty DK X48 T2RS |
Операционная система | Windows 7 Ultimate x64 |
Видеокартаы | ATI Radeon HD 5870, (5750) Nvidia Zotac GeForce GTX 480, GTX 285, GT 240 |
Графический драйвер | Catalyst 9.10, 9.12, 10.1, 10.2, 10.3, 10.4 Geforce 197.41, 197.45 |
Энергопотребление мы измеряли с помощью устройства Zalman, а для оценки производительности 2D мы использовали тот же самый тест, что и в предыдущих статьях. Финальные результаты нас не удивили, однако в некоторых тестах мы обнаружили очень интересные детали. Всё это мы подробно рассмотрим чуть ниже.
Результаты производительности и новые вопросы
Давайте внимательнее рассмотрим улучшения производительности. Мы использовали процентные соотношения, а не абсолютные результаты. Числовые значения могут различаться у разных систем, но разница в процентах между версиями драйвера является относительной и более удобной для сравнения. В качестве 100% мы взяли результаты Radeon HD 5870 с драйвером Catalyst 9.12, как и в предыдущих статьях.
Текст
Как и предполагалось, мы не обнаружили существенной разницы между видеокартами и версиями драйверов при выводе текста. Конечно, вывод текста не вызывал особых проблем в наших первоначальных статьях, но с новыми драйверами мы всё же получили небольшой прирост производительности. Измерить его можно, но для среднего пользователя он вряд ли будет ощутим – уровень производительности был высоким и у старой версии драйвера.
Ниже мы попытаемся сфокусировать внимание на тех областях, где мы получили существенную разницу по производительности.
Линии
Вывод линий был, по сути, одной из выявленных нами раньше проблемных областей. С новыми драйверами мы получили существенный прирост производительности. Новые результаты позволяют надеяться на высокую 2D-производительность во всех задачах. Видеокарта GeForce GTX 285 оказалась чуть быстрее Radeon HD 5870, хотя в реальной работе это не ощущается.
Что интересно, результаты GeForce GTX 480 показывают, что драйверы Nvidia не очень хорошо оптимизированы, потенциал для улучшения ещё есть.
Полигоны
Видеокарта GeForce GTX 480 оказалась приятным исключением, а разница между остальными результатами невелика. Отсутствие высокой производительности по выводу полигонов – проблема, и в некоторых случаях она будет отчётливо ощущаться. Впрочем, за исключением некоторых специфических приложений, эта слабость не так и значима. В любом случае, измеренная нами производительность слишком низка, учитывая потенциал видеокарт (особенно если учесть, что Radeon HD 5870, в некоторых случаях, получает 250% прирост производительности только благодаря открытому окну диспетчера задач). Мы подробно рассмотрим этот “парадокс” чуть ниже.
Эллипсы
Проблему с выводом эллипсов можно считать решённой, разработчики драйверов AMD поработали хорошо.
Блитирование
Результаты теста блитирования показывают производительность растягивания или вывода прямоугольников. Разница в производительности невелика, мы получаем весьма достойный уровень 2D-производительности.
Промежуточное заключение
AMD хорошо справилась с “домашним заданием”. Мы не обнаружили сценариев (разве что за исключением вывода полигонов), в которых низкая 2D-производительность могла бы замедлить вашу работу в приложениях, хотя потенциал для дальнейших оптимизаций присутствует.
Впрочем, существующая ситуация в некоторой степени связана с некоторыми особенностями Windows 7, которые влияют на обе компании в одинаковой степени. И на следующей странице мы как раз более подробно это рассмотрим, а также и поговорим о связи особенностей с “парадоксом диспетчера задач”, с которым мы столкнулись.
Парадокс диспетчера задач под Windows 7
При прямом выводе графики на дисплей мы обнаружили, что результаты в некоторых случаях отличаются от среднего значения, несмотря на идентичное “железо” и условия тестирования, но затем мы получали привычные значения. Мы попытались повторить этот “парадокс”, что привело нас к диспетчеру задач.
После публикации двух первых статей мы получили немало писем, в которых читатели указывали на связь между необычными результатами тестов и открытым диспетчером задач. Поэтому мы и назвали обнаруженную проблему “парадоксом диспетчера задач”. Мы использовали наши тестовые системы для сравнения результатов теста Tom2D, при этом мы устанавливали видеокарты обоих производителей. Мы провели по пять тестовых прогонов на каждой системе, как с открытым диспетчером задач, так и с закрытым. Результаты наглядно подтверждают наши первоначальные предположения.
Простой тест показал, что открытый диспетчер задач приводит к повторяемой ситуации с более высокими тестовыми результатами обеих видеокарт. Кроме того, общая производительность 2D в случае видеокарты Nvidia увеличивалась сильнее, чем с видеокартой AMD. Но подобный результат слишком уж обобщённый, поэтому мы решили глубже исследовать проблему.
Только два значения (производительность вывода полигонов и растягивание) оказались значительно более высокими после запуска диспетчера задач в случае видеокарты Radeon HD 5870. Другие результаты оказались примерно на том же уровне, что и без активного диспетчера задач. Как можно видеть на предыдущей диаграмме, суммарная разница невелика, и её можно считать несущественной.
Затем мы провели тесты с видеокартой Nvidia. Нам было интересно понять, какая подкатегория в тестах привела к 17% увеличению суммарной производительности. И результаты оказались несколько удивительными.
По сравнению с Radeon HD 5870, видеокарта GeForce GTX 285 даёт даже большее увеличение производительности в тестах полигонов и растягивания, а также весьма любопытный прирост 72% в тесте блитирования.
Но каково объяснение весьма существенного увеличения производительности в некоторых тестах? Если посмотреть на функции, которые Windows 7 может ускорить аппаратно, то влияние можно проследить только на блитировании и растягивании. Производительность полигонов, которая тоже значительно увеличивается, в данном случае меняться не должна. Да и диспетчер задач, сам по себе, вряд ли можно считать достоверным объяснением. Всё же причина должна быть иной.
Решение ближе, чем вы думаете
Затем мы попытались провести ещё несколько тестов с активным диспетчером задач и без него, при этом мы измеряли относительно простые параметры системы.
- Тактовую частоту GPU;
- тактовую частоту CPU;
- нагрузку на CPU;
- энергопотребление системы.
Нам пришло в голову, что видеокарты могут менять режимы электропитания из-за запуска диспетчера задач или некоторых других программ, поэтому во время тестов мы решили отслеживать энергопотребление GPU и тактовую частоту GPU. Под Windows 7 видеокарты обоих производителей могут теоретически увеличивать тактовые частоты, переходя в 3D-режим при обработке 2D-инструкций GDI. В случае Radeon HD 5870 это означает переход с частоты 157 МГц до 850 МГц. Впрочем, все упомянутые выше параметры оставались полностью неизменными при тестировании с диспетчером задач и без него.
Так почему же мы получаем прирост производительности при активном диспетчере задач, несмотря на одинаковый уровень тактовых частот? Объяснение оказалось проще, чем мы полагали изначально. Небольшая программа с 3D-графикой, которую мы написали самостоятельно, помогла выйти на правильный путь.
Мы забыли закрыть это 3D-приложение, после чего смогли обнаружить существенное увеличение по 2D-производительности.
Фактически, 2D-производительность увеличивается, как только устройство D2D/D3D (в идеальном случае в оконном режиме) становится активно параллельно к прямому выводу. Причём видимое окно или скрытое, в данном случае значения не имеет. Если устройство вывода активно, то подтесты 2D GDI/DDI, указанные выше, будут работать быстрее. Различие только в одном: драйверы Nvidia чуть лучше справляются с блитированием. Диспетчер задач в Windows 7 использует D2D, что и объясняет увеличение производительности в том случае, когда он открыт.
Промежуточное заключение
До сего момента мы говорили не об ошибке, а о парадоксе. Тем более что подобное увеличение в производительности связано с наличием приложения с активным выводом D2D/D3D – и сразу же возникает вопрос, почему производительность не такая высокая без активного вывода D2D/D3D? Можно прийти к заключению, что, несмотря на заявленное разделение под Windows 7, GDI по-прежнему напрямую связано с D3D. Может ли это быть связано с разработчиками драйверов, которые были вовлечены в эксперимент с Windows Vista, на данный момент мы не знаем.
Теоретически разработчики драйверов могут устранить последние проблемы. Но нам ещё предстоит увидеть, считают ли они эти проблемы стоящими дополнительных усилий. В любом случае, частичное возвращение аппаратного ускорения 2D под Windows 7 по-прежнему находится под большим знаком вопроса.
Заключение
AMD и Nvidia сегодня предлагают свои видеокарты с драйверами под Windows 7, которые обеспечивают достаточно 2D-производительности для использования GDI/GDI+. AMD почти полностью решила проблемы, которые были выявлены в нашем первоначальном тестировании, мы получили улучшение производительности, в среднем, почти на 100%. Так что ситуация вполне приятная.
Большое количество откликов наших читателей, а также положительные отзывы от некоторых производителей ПО, которых затронула та же самая проблема, говорят о высокой значимости нашего 2D-теста. Конечно, обычный пользователь, интересующийся только 3D, вряд ли столкнётся с описанными нами проблемами, поэтому мы вполне хорошо понимаем сомнения, которые были высказаны по поводу наших находок. Реакция команды разработчиков драйверов, а также своевременное исправление доказывают, что AMD/ATI восприняла эту проблему намного более серьёзно, чем было публично объявлено.
В итоге решение было представлено довольно быстро, и сегодня программное обеспечение, которого коснулась эта проблема, работает без каких-либо ограничений. Только “парадокс диспетчера задач”, о котором мы уже говорили чуть выше, по-прежнему не даёт нам покоя, поскольку мы видим явный потенциал улучшения производительности.
Как насчёт других видеокарт?
Кроме тестов, которые мы провели с high-end видеокартами, мы также выполнили промежуточные тесты с видеокартами среднего уровня (GeForce GT 240 и Radeon HD 5750). Результаты оказались достаточно похожими на данные high-end видеокарт, так что вряд ли существуют какие-то исключения, а мы можем расширить наше заключение и на “младшие” модели видеокарт в текущих линейках.
Небольшое ограничение
Несмотря на существенные улучшения, реализованные разработчиками драйверов AMD и Nvidia, обоим производителям видеокарт не следует почивать на лаврах. Уровень производительности, которая ОС Windows XP давала в 2D, по-прежнему остаётся недостижимым.