Архитектура GT200 под микроскопом.Помимо бросающихся в глаза изменений особо крупного масштаба, в GT200 NVIDIA ввела немало новшеств поменьше. Среди них особое место занимает модернизация распределяющей на потоковые процессоры нагрузку логики. От нее напрямую зависит насколько эффективно будут работать все 240 SP. Улучшения можно выразить простыми цифрами — если раньше один SM G80 мог исполнять 768 потоков команд, а сам чип управлялся с 12288, теперь каждый SM в состоянии разобраться с 1024 потоками, тогда как весь SPA, состоящий из 30 SM — с 30720. Инструменты для проверки данного утверждения, как и в случае с улучшенными возможностями текстурирования, у нас отсутствуют, однако не верить NVIDIA никаких поводов нет. С теми же самыми улучшениями в распределяющей и планирующей логике связана и повышенная относительно G80 эффективность выполнения в шейдере двух инструкций MAD+MUL за один такт. На самом деле, NVIDIA несколько лукавит, говоря об аппаратной поддержки данной возможности. Если бы исполнение проходило абсолютно на уровне математических процессоров, о таком понятии как процент удачных выполнений MAD+MUL не могло бы быть и речи. Дело в том, что одновременное исполнение двух инструкций (Dual Issue) возможно только тогда, когда планировщик TM группы SM, предвидя в коде возможность одновременного исполнения, зарезервировал за SFU время для выполнения, в общем-то, побочной для них функции MUL. С учетом того, что MAD будет выполнено SP, в таком случае можно говорить о возможности одновременного исполнения умножения и сложения, но в общем виде это не совсем верно. Причем случилось так, что неэффективная работа планировщика MT в G80 свела хорошую задумку NVIDIA по использованию свободных ресурсов для одновременного MAD+MUL к случайным удачам. В GT200, по словам компании, этот недостаток был устранен и в специальных оптимизированных тестах процент успешного выполнения составляет теперь 93-94%. Нельзя не сказать и об удвоении размера регистровых файлов. Как мы уже говорили, каждый SP является полноценным микропроцессором, и следовательно имеет регистровый файл. Регистры являются наиболее близкими к исполнительным модулям микропроцессора хранилищами информации, а регистровый файл — это все ячейки регистров суммарно. Хотя мы не знаем точно, каким размером регистрового файла обладал G80, точно известно, что в GT200 размер этого файла был удвоен. NVIDIA считает, что будущее игровых приложений за интенсивным использованием вычислительных ресурсов, следовательно частота использования регистровых файлов SP также должна возрасти, а ограничение может быть только одно — количественная нехватка этих самых регистров. Отсюда и логичное решение увеличить регистровый файл вдвое. По данным NVIDIA такое увеличение очень неплохо сказывается в приложениях, использующих длинные шейдеры, например, 3D Mark Vantage. Еще одним важным нововведением GT200 и карт, основанных на этом чипе, стала аппаратная поддержка вычислений с плавающей запятой двойной точности. Удвоенная точность — условное название для 64-битных операций. Если говорить о 240 SP, они обладают стандартной 32-битной точностью и вообще не могут исполнять 64-битные команды. Для того, чтобы научить GT200 на аппаратном уровне поддерживать удвоенную точность вычислений, NVIDIA включила один 64-битный вычислительный блок в каждый SM, что составило общие 30 модулей на весь чип. Соотношение между процессорами в GT200, которые являются 32 и 64-битными крайне мало. Обусловлено это тем, что для основного применения видеокарт — графики, их использование очень ограниченно. Скорее 64-битная точность нужна в сложных научных расчетах, которые позволяет выполнять платформа CUDA. Даже если смотреть в будущее, очень маловероятно, что игры в скором времени будут получать пользу от обсуждаемого нововведения — сегодня основные вычисления приходятся на 8-ми битные целочисленные значения, да на 16-битные числа с плавающей точкой. Если заметные эффект от использования где-либо появится, то в первую очередь это скорее всего будет при обсчетах геометрии и вершин. Кстати о геометрии. Если у R600 и его более удачной версии RV670 с этим все было нормально, то у G80 наблюдались некоторые проблемы. К сожалению, это преимущество не было реализовано ATI и скорее играло на руку NVIDIA, так как разработчики игр редко использовали геометрические шейдеры в своих продуктах. Мы не можем ругать NVIDIA за слабую производительность G80 в геометрических вычислениях, так как в реальности оказалось, что новая возможность для разработчиков на тот момент не представляла интереса. Однако постоянно так продолжаться не могло, и в GT200 инженеры внесли нужные усовершенствования. Как вы видите, преимущество GT200 над G80 достигает шести раз, и такую работу над ошибками нельзя не признать удачной. NVIDIA говорит и о более мелких усовершенствованиях в архитектуре своего нового чипа. Так, был переработан интерфейс взаимодействия между фреймбуффером и модулем data assembler, что привело к увеличенной скорости выборки проиндексированных примитивов. Благодаря увеличенным размерам кэшей пост-трансформации уменьшилось число простоев конвейера, более быстрыми стали переходы от вершинной и и геометрической стадий к viewport clip/cull. Была улучшена и производительность Z-Cull, тогда как с введением дополнительных ROP'ов количество возвратов Early-Z возросло. За такт теперь обрабатывается 32 пикселя, что соответствует 256 семплам в режиме 8x AA. [N7-Позиция NVIDIA в отношении DirectX 10.1 и отсутствие его поддержки в GT200.]Многие пользователи надеялись увидеть полноценную поддержку DX10.1 в GT200, однако этого не случилось — по решению NVIDIA в текущей архитектуре API не поддерживается полноценно. Положение, сложившееся сейчас, очень напоминает время, когда в R420 ATI отказалась от SM 3.0 в DX9, а NVIDIA продвигала их полную поддержку в серии GeForce 6. Только сейчас мы видим уже обратную картину — карты AMD поддерживают DX10.1 начиная с RV670, NVIDIA же отказывается реализовывать соответствие со стандартом даже в новом GT200. Что бы ни говорила о DX10.1, но чего-то принципиально нового это обновление для игроков не приносит. Скорее, это более удобные инструменты и новые возможности для разработчиков, позволяющий писать более оптимальный код. В некоторых случаях возможно существенное улучшение производительности. Необходимо отметить, что несмотря на тот факт, что NVIDIA не заявляет о поддержке DX10.1, а DX10 не предлагает caps bits, разработчики вполне могут реализовать запрос к драйверу о поддержке некоторых функций определенной функции. Так с GT200 может быть осуществлен multisample readback, и, при желании NVIDIA, многие другие нововведение DX10.1. Конечно, одной из позиций обновленного API являлось то, что разработчикам впредь не следовало задумываться о возможностях оборудования, для чего и были нужны caps bits, но это не значит, что инженеры NVIDIA не могли реализовать это несколько по-другому. Конечно, это поддержка некой единой возможности из целого ряда нововведений не позволяет сказать о том, что GT200 поддерживает DX10.1. Скорее NVIDIA реализовала некоторые возможности DX10.1, оставаясь в существующих рамках. Хотя мы бы и были рады видеть поддержку одинаковых API на картах AMD и NVIDIA, понять отказ NVIDIA от DX10.1 можно. На этом бы разговор про DirectX 10.1 можно было и закончить, если бы не очень честный маркетинг, который превратил обычное инженерное решение в предмет для неприятного обсуждения. Мы знаем, что в архитектуре как G80, так и R600, изначально была заложена поддержках некоторых функций DX10.1. В идеале неплохо бы было точно знать каких именно, и что было добавлено в GT200 для облегчения жизни разработчикам. К сожалению, ответ на этот вопрос был дан не техническим инженером NVIDIA, а подразделением технического маркетинга: "Мы поддерживаем лишь multisample readback, и это единственная возможность DX10.1, которую (некоторые) разработчики предпочли бы использовать. Если мы открыто скажем, какие функции не могут поддерживаться нашим аппаратным обеспечением, ATI постарается заставить разработчиков использовать их, что только повредит индустрии ПК игр и разочарует геймеров." Фактически, спорным в данном утверждении (а это, заметьте, официальная позиция NVIDIA) является чуть ли не каждая позиция: массивы кубических карт достаточно удобны для упрощения и ускорения многих приложений. Необходимо? Нет, но очень даже полезно? Да. Новые режимы раздельного MRT-блендинга могут стать часто используемыми с распространением техники отложенного рендеринга? Да, вполне! К тому же поддержка этой функции даст разработчикам дополнительный простор для экспериментов. Да, возможно немногие станут использовать Int16 для бленда, но в любом случае многие из возможностей DX10.1 интересны, и могли бы стать востребованными при обоюдной поддержке AMD и NVIDIA. Дальше стоит разоблачить и идею о том, что ATI намеренно будет пытаться нанести вред ПК-геймингу. Любой разработчик ставит перед собой задачу как можно более эффективно и быстро достичь поставленных целей, при этом затрачивая как можно меньше ресурсов. Если некая возможность при стремлении к результату будет полезной — почему бы не использовать ее? Если она бесполезна — проще оставить. Разработчики всегда стараются сделать как можно более интересную игру, причем доступную для большинства геймеров в равной мере использующих видеокарты AMD и NVIDIA. А возможно это только в случае поддержки одних и тех же API обоими вендорами. Так же, как NVIDIA приняла инженерное решение отказаться от DX10.1, каждый разработчик при производстве игры принимает решение об использовании определенной техники рендеринга, а так как NVIDIA не поддерживает DX10.1, то и функции этого API автоматически становятся менее привлекательными для применения, потому что в любом случае придется писать аналог на более старом DX10. Если это условие невыполнимо, или вариант кода DX10 будет работать на порядок медленнее, смысл применения DX10.1 стремится к нулю, и никакое давление AMD тут не поможет. Очень наивны и высказывание о том, что NVIDIA собирается спрятать от AMD недокументированные возможности GT200. Обе компании всегда занимаются реверс-инжинирингом, и, используя сверхмощные электрические микроскопы в сочетании с рентгеновскими лучами узнают все, что нужно о кристаллах конкурентов. NVIDIA прекрасно знает, что AMD, конечно же, изучит таким образом GT200, как в свое время NVIDIA сама изучала, например, RV670. Поэтому AMD сама, безо всяких сведений от калифорнийской корпорации, будет знать все сильные и слабые стороны решения конкурента. Кто же действительно пострадает от скрытности NVIDIA? В первую очередь это энтузиасты, которые любят изучать низкоуровневую работу аппаратного обеспечения. Конечно, это и разработчики, которые в неразберихе вокруг поддержки DX10.1 не могут понять, какие функции API NVIDIA реально может предложить. AMD, в свою очередь, не сможет предоставить реальные преимущества своих карт разработчикам, которые, скорее всего, откажутся от использования DX10.1, потому что чипы NVIDIA не поддерживают его (даже если и реально могут поддерживать, точной информации об этом нет). Ну и, в конце концов, среднестатистические геймеры, которым и не надо знать, что разработчик мог бы потратить время, сэкономленное при использовании DX10.1, например, на дополнительный сюжетный эпизод игры. Почему же все-таки NVIDIA выбирает путь нечестного маркетинга и не соответствующих реальности заявлений? Гадать можно долго, и точного ответа мы не знаем. Возможно этим компания хочет заставить разработчиков вообще отказаться от применения в играх кода, который хорошо работает на картах AMD (вспомните патч DX10.1 для Assassin's Creed, поднявший производительность карт AMD на пару десятков процентов), возможно функции DX10.1 хотя и могут быть реализованы, но скорость их выполнения оставляет желать лучшего, а времени на исправление упущений у инженеров уже не было. Реален и такой вариант, что текущая реализация архитектуры вообще не способна выполнять какие-либо необходимые функции, чтобы соответствовать требованиям DirectX 10.1. Но как бы там ни было, NVIDIA настаивает на том, что если откроет весь список поддерживаемых возможностей, AMD с ее, видимо, огромными денежными запасами купит определенных разработчиков, заставив поддерживать DX10.1, который решения NVIDIA запускать попросту не могут. Подождите-ка. Это говорит NVIDIA, придумавшая программу NSIST On NVIDIA и The Way It's Meant To Be Played? О компании, стоимость которой с ее графическим и процессорным подразделениями вместе взятыми в пару раз меньше самой NVIDIA, да и долг составляет миллиард долларов? Да уж, кто же действительно в состоянии купить разработчиков и негативно влиять на индустрию? [N8-Сравнение производительности G80 и GT200 на одинаковых частотах.]Из предыдущих частей статьи мы уже поняли, насколько сильно различается архитектура GT200 и G80/G92. Некоторые выводы о превосходстве нового чипа над старым поколением, сделанные нами при анализе, было интересно подтвердить проверкой обеих карт на одинаковых частотах. Для этого помимо самой GTX 280 мы взяли 8800 GTX, установив частоты работы обоих GPU на отметке в 575 МГц. Шейдерные процессоры работали на 1350 МГц, а память — на 900 МГц (1800 МГц эффективных). Графики ниже показывают, насколько увеличилась производительность от добавления вычислительной мощности, расширения шины памяти и всех тех усовершенствований, о которых мы говорили: Согласно нашим предположениям, минимальный прирост мы могли увидеть на уровне 25% в тех случаях, когда для G80 узким местом являлось текстурирование, а вычислительная мощь не требовалась. В реальных приложениях, конечно, такой рост производительности выглядит маловероятным, и эффект от большего числа шейдерных процессоров должен приблизить превосходство GT200 над G80 к отметке в 87,5%. Как видно, наши предположения оправдались, и рост скорости как раз находится между двумя крайними величинами. Основываясь на полученных результатах можно сказать, что, например, Bioshock задействует максимальное количество вычислительной мощности, тогда как остальные параметры не являлись узким горлышком даже в G80. Crysis же, с другой стороны, показывает, что игре необходимо больше возможностей по всем позициям, а значительное улучшение лишь математического аппарата не приводит к скачкообразному повышению производительности. Приведенные выше данные лишь подтверждают, что производительность при измененном балансе архитектуры будет напрямую зависеть от используемых приложения. Там, где основные потребности состоят в математической мощности, GT200 будет получать самую заметную прибавку относительно решений предыдущих поколений. Там же, где текстурирование играет роль поважнее — потоковые процессоры чипа будет просто простаивать без дела. [N9-Управление питанием и энергосбережение.]Сегодня многие производители серьезно озабочены проблемами энергопотребления. Если раньше зачастую о возможности снижения частот в простое и хорошем соотношении производительности на Вт говорили просто как о приятных дополнениях, сегодня без этого не обойтись. NVIDIA, похоже, забыла об этом, так как несколько серий подряд в ее картах не было даже разделения частот на 2D/3D, однако с GT200 все встало на должные места — компания заявляет, что в состоянии простоя карта потребляет всего лишь 25 Вт. Примененные для этого технологии отнюдь не являются революционными. Применено самое обычное динамическое управление частотами и напряжениями. В GPU находится специальный датчик, отслеживающий степень загруженности видеопроцессора. В различных условиях работы (Hybrid Power — полное отключение видеокарты и переход на встроенную графику, 2D режим/простой, проигрывание HD видео, 3D графика с полной загрузкой, наконец) он выбирает соответствующие параметры. Переключения между режимами занимает считанные миллисекунды. В целом технология очень похожа на AMD PowerPlay. Конечно, с кристаллом огромных размеров и большим количеством набортной видеопамяти просто невозможно всегда удерживать энергопотребление в приемлемых рамках — когда карта использует все возможности, напряжения и частоты поднимаются, как поднимается и затрачиваемая энергетическая мощность, конвертируемая в десятки FPS и сотни Вт выделяемого тепла. Даже сложно сказать, что выглядит более впечатляющим — огромный горячий монстр в работе, или он же в спящем состоянии. Стоит отметить, что для режима проигрывания HD видео NVIDIA выделила отдельный режим работы с энергопотреблением с в 32 Вт. Приятно, что даже таким мелочам уделяется внимание. Конечно, если говорить о потребляемой мощности в целом, карту уровня GTX 280 можно сравнить с дорогой спортивной машиной, покупатели которой не задумываются о потреблении топлива, но ведь согласитесь, что всегда приятнее пусть даже в 2D режиме не тратить впустую десятки Вт энергии. Общее энергопотребление системы в режиме покоя находится на уровне куда более слабых карт. Но, как уже было сказано выше, стоит дать карте работать в полную силу, как тут же потребляемая мощность вырастает в разы. [N10-Практические исследования.]Мы использовали следующую тестовую конфигурацию:
Наконец-то Crysis стал несколько более играбельным на одиночных видеокартах, однако вполне предсказуемо, что GeForce GTX 280 в данном тесте фактически проигрывает 9800 GX2. Благодаря двум GPU, GX2 обладает в совокупности большей мощностью, и хотя пропускная способность памяти в два раза меньше, в конечном счете, GX2 выигрывает противостояние с конкурентом из своего же стана. При этом не следует забывать, что, во-первых, двухчиповая видеокарта стоит как минимум на $150 дешевле нового GTX 280, ну а, во-вторых, GX2 это все же SLI решение, и поэтому очень сильно зависит от качества оптимизации драйверов. GTX 260 выступает достаточно хорошо, превосходя в скорости Radeon HD 3870 X2. В ценовом диапазоне GTX 260 противостояние уже намного ожесточеннее. В еще одном популярном шутере мы видим полное повторение ситуации – GX2 продолжает опережать GTX 280, тогда когда GTX 260 впереди 3870 X2. Опять же сказывается прекрасная отлаженность SLI для CoD 4 – даже пара куда более дешевых 8800 GT будет вполне в состоянии соперничать с GTX 260 и даже дорогим GTX 280, как это успешно делает 9800 GX2. В этом тесте GTX 280 наконец-то берет реванш, опережая GX2. Похоже, игра более требовательна к пропускной способности памяти, и тут сказывается узкая 256-битная шина G92. Проблемы AMD с работой в Crossfire никуда не делись, и 3870 X2 недалеко уходит от одночиповой карты. В тоже время GTX 260 сравнивается с SLI парой 8800 GT. В Assassin’s Creed все встает на привычные нам места – впереди всех 9800 GX2, опережающая GTX 280. Assassin’s Creed прекрасно масштабируется при использовании нескольких графических чипов в системе и благодаря этому даже пара 8800 GT в состоянии опередить новые GeForce GTX. Такой результат можно объяснить тем, что хотя пара G92 обладает меньшим количеством SP, по мощности в SLI она превосходит один GT200 – 112 потоковых процессоров (224) работают на частоте в 1,5 ГГц, тогда как 240 SP GTX 280 – лишь на 1,3 ГГц. Урезанная версия GT200 в свою очередь снова впереди Radeon HD 3870 X2, и, что естественно, проигрывает паре 8800 GT. Результат, показанный GX2 и GTX 280 в использованном режиме с четырехкратным антиалиасингом и шестнадцатикратной анизотропией очень близок, однако GT200 пусть на один FPS, но опережает 9800. В остальных разрешениях расклад уже иной, но именно диаграммы для 2560 x 1600 показательны – именно здесь раскрывается 512-битная шина GT200, тогда как ПСП GX2 уже не хватает. Не следует забывать о том, что хотя GX2 и основана на паре G92, их разрядности шины нельзя складывать, как и нельзя складывать объем памяти. Так делают лишь маркетологи, в реальности каждый чип довольствуется 512 Мб и 256-битным интерфейсом. GTX 260 выступает на уровне с парой 8800 GT и 3870 X2. При этом следует помнить, что одиночная карта нового поколения дороже, и, если вы являетесь обладателем материнской платы с поддержкой SLI и видеокарты класса 8800 GT, разумнее будет докупить еще одну такую видеокарту, чем тратиться на смену имеющейся. Ведьмак оставляет первенство у GTX 280, а вот GTX 260 показывает результат хуже, чем двухчиповая 3870 или SLI 8800 GT. Наш последний бенчмарк становится безрадостным для новой линейки GeForce GTX – обе карты показывают результат хуже, чем пара 9800 GX2 и даже пара 8800 GT в SLI. Конечно, они являются мощнейшими одночиповыми картами NVIDIA, однако это не лучшее предложение в high-end сегменте. Некоторые пользователи не довольствуются номинальными режимами работы графических карт, поэтому многие производители за небольшую доплату предлагают немного разогнанные версии с повышенными частотами. Одной из таких карт стала EVGA GeForce GTX 280 FTW Edition. Частота GPU платы повышена до 670 МГц, что составляет увеличение на 11,3%. Шейдерный домен работает на 1458 МГц – 12,5% превосходства, а память разогнана на 9,8% - эффективная частота составляет 2430 МГц. Мы провели несколько быстрых тестов в высоких разрешениях для того, чтобы увидеть, насколько пропорционально возрастет производительность в играх от увеличения тактовых частот. В среднем, как и ожидалось, увеличение производительности составило от 8 до 12%. Crysis в нашем тестировании является одним из нескольких бенчмарков, в которых GTX 280 уступила 9800 GX2. К сожалению, даже заводской разгон не смог исправить ситуацию: Oblivion же в высоких разрешениях и “тяжелых” режимах уже показал, что лимитирующем фактором для двухчиповой 9800 стала пропускная способность памяти, в дополнительном тестировании это только подтвердилось – с повышенными частотами GTX 280 только увеличивает свое превосходство: Похоже, GeForce GTX 280 и www.anandtech.com/ |