Авторы:
Дмитрий Софронов, Антон Рачко
Грядущий выпуск видеокарт AMD серии HD48xx уже давно является фокусом пристального внимания общественности. Мы не могли остаться в стороне этой горячей темы, и предлагаем вам свой прогноз производительности AMD Radeon HD4870 в 3DМark’06. При этом мы постараемся не просто привести какое-то число «попугаев» 3DMark, которое видеокарта наберет в этом популярном тесте графической производительности, но и расскажем, каким именно образом мы пришли к таким выводам и почему. Итак, приступим.
Предполагаемые характеристики видеокарт серии HD48xx уже давно «гуляют по сети», на них мы и будем строить свои расчеты. Разумеется, если розничные версии видеокарт будут отличаться по характеристикам, наш прогноз окажется неверным. С другой стороны, примененная нами методика расчета позволяет скорректировать результаты и оценить погрешность примененного метода. Но этот вопрос мы оставим до официального выпуска видеокарт серии HD48xx.
Основная идея состоит в следующем – мы проведем несколько серий тестов видеокарт Radeon HD3850/3870 в разных режимах. Затем, на основании проведенных тестов, мы сделаем некоторые экстраполяции полученных результатов для видеокарт уже серии HD48xx, с учетом разницы в характеристиках этих серий. Ну и, наконец, мы попытаемся вычислить итоговые значения 3DMark’06 с учетом «реальных» частот видеокарт HD48xx.
Тестовый стенд |
Процессор |
Intel Core 2 Quad X6850 3,0 ГГц |
Материнская плата |
ASUS P5E3 на базе чипсета Intel X38 |
Оперативная память |
Corsair Dominator DDR3 2 x 2 Гб 1333 МГц 6-6-6-18 1T |
Операционная система |
Windows XP+SP2+DirectX 9.0c |
Блок питания |
HIPER 880 Вт |
Сначала давайте посмотрим на следующий график.
График 1
На этом графике приведены результаты тестов 3DMark’06 для видеокарты Radeon HD3870 512 Мб DDR4. Частота GPU была зафиксирована на отметке 500 МГц (зачем так было сделано, будет объяснено несколько позже), а эффективная частота видеопамяти изменялась от 1700 МГц до 2300 МГц с шагом в 100 МГц. При увеличении частоты видеопамяти результаты растут, но характер роста результатов нелинейный. Мы специально привели график в таком масштабе, чтобы это можно было увидеть. Если же сделать график «как полагается», то есть с началом координат в точке (0;0), то он примет следующий вид.
График 2
Давайте теперь подумаем, каким мог бы быть этот график на всей протяженности оси Х, то есть – как результаты 3DMark’06 зависели бы от частоты видеопамяти, если бы мы могли изменять ее от нуля и до бесконечности. Призовем на помощь здравый смысл. Как будет вести себя график при приближении частоты видеопамяти к нулю? Очевидно, в этом случае частота видеопамяти (а значит и ее пропускная способность), будет «узким местом» системы, поэтому график должен быть близок к линейному. Более того, график должен стремиться к началу координат, в точку (0;0), потому что чем «слабее» видеокарта, тем меньше будет результат 3DMark. С этим мы разобрались. А что будет, если бесконечно увеличивать частоту видеопамяти? По идее, в этом случае величина пропускной способности видеопамяти не будет «узким местом» в производительности видеокарты, а значит, в какой-то момент рост результатов прекратится, и будет ограничиваться другими факторами, например – производительностью GPU. Таким образом, при стремлении частоты видеопамяти к бесконечности, на вышеприведенном графике мы получим линию или «полочку», параллельную оси Х.
Теперь давайте попробуем подобрать такую функцию, которая проходила бы через измеренные нами реальные результаты, но в то же время отвечала бы озвученным «граничным условиям». Разумеется, подбор точной функции дело утомительное и долгое, поэтому мы не будем особо усердствовать, а возьмем первую подходящую функцию и попробуем ее «подогнать» к нашим результатам с помощью неких параметров.
Какая функция могла бы нам подойти? Вопрос интересный и нетривиальный. Любознательные читатели могут и сами попытаться провести подобный эксперимент (вполне возможно, что результаты будут даже точнее). Но мы не будем перечислять все возможные варианты, и остановимся на функции следующего вида:
График этой функции выглядит следующим образом.
График 3
Как видите, около начала координат график изменяется почти по линейному закону, потом идет переходная область, а затем горизонтальная «полочка», которая асимптотически приближается к значению Y = 1 при стремлении X к бесконечности. То есть, нашим требованиям и граничным условиям данная функция вполне удовлетворяет. Однако одного графика для описания поведения нескольких видеокарт нам совершенно точно не хватит. Поэтому давайте введем некоторые параметры, вариацией которых мы и попытаемся получить графики, на определенном участке совпадающие с нашими реальными измеренными значениями.
Например, в вышеприведенную формулу можно ввести два параметра «а» и «с» следующим образом:
В этом случае, при изменении параметра «а» у нас будет изменяться «уровень полочки» по оси Y, а параметр «с» будет отвечать за «растянутость» графика по оси Х, как это показано на графике ниже.
График 4
Теперь надо решить, каким образом подбирать параметры «а» и «с» чтобы график совпал с нашими измеренными значениями. Понятно, что можно подбирать вручную. Но это долго и утомительно, поэтому сделаем проще. Для того, чтобы найти два неизвестных параметра, нам необходима система из двух уравнений. Одно уравнение у нас уже есть. Где взять второе? Очень просто. Давайте возьмем производную от первого уравнения. В итоге получим следующую систему уравнений:
Остается один маленький вопрос – где взять значение производной «y’»? Здесь придется призвать на помощь численные методы и вычислить производную в точке х как отношение ∆y/∆x. Теперь остается из второго уравнения выразить значение параметра «с», подставить в первое уравнение, решить его, и получить значение параметра «а». К сожалению, полученное уравнение является трансцендентным, поэтому решать его пришлось численно.
Для видеокарты Radeon HD3870 512 Мб DDR4 с частотой GPU=500 МГц вычисленные значения параметров получились следующими - a= 9260, с= 0,001606
Давайте посмотрим, что получится в итоге, если к линии результатов, изображенной на графике 2, добавить график функции с такими значениями параметров «а» и «с».
График 5
Как видите, построенный таким образом график довольно неплохо совпадает с реально измеренными точками. Однако не все так гладко, как кажется на первый взгляд.
График 6
Если увеличить область графика в районе измеренных точек, то будет видно, что крайняя левая точка «выпадает» из графика. Впрочем, мы и не обещали, что совпадение будет идеальным.
Теперь давайте подумаем, какой физический смысл несут примененные нами коэффициенты «а» и «с»? Насчет первого особых проблем не возникает – если при увеличении частоты видеопамяти результаты все больше ограничиваются производительностью GPU и стремятся к пределу, выраженному параметром «а», то можно условно назвать этот параметр «чистой силой GPU».
Но возникает вполне закономерный вопрос – а имеет ли вообще «право на жизнь» примененный нами подход к такой экстраполяции результатов? Мы можем это проверить. Давайте возьмем другую видеокарту, например – Radeon HD3850 DDR3, зададим частоту GPU равную 500 МГц, и проведем такую же серию тестов на том же стенде, что и с видеокартой Radeon HD3870 DDR4. Что мы должны получить в этом случае? Если наше предположение, что параметр «а» выражает «чистую силу GPU» верно, то, несмотря на отличающийся тип памяти на видеокарте Radeon HD3850, для такого же GPU RV670, работающего на той же частоте 500 МГц, мы должны получить такое же значение параметра «а», как и в случае с Radeon HD3870 DDR4.
Графики реальных результатов для HD3870 DDR4 и HD3850 DDR3 показаны ниже:
График 7
Аналогично предыдущему случаю, вычислим значения параметров для видеокарты HD3850 DDR3 с частотой GPU, равной 500 МГц. В итоге – параметр «а» равен 9237, параметр «с» равен 0,0020389. Получаем следующий график:
График 8
Как видите, значения параметров «а» для видеокарт HD3850 и HD3870 очень близки. А в числовом выражении разница между 9237 и 9260 составляет всего-то 0,25%, что является очень неплохой точностью для наших экстраполированных значений.
Пойдем дальше. Проведем следующую серию испытаний в точно тех же условиях, но теперь частоту GPU на каждой из видеокарт HD3850 и HD3870 установим в значение 650 МГц.
График 9
Аналогично проводим вычисления и получаем следующие коэффициенты. Для видеокарты HD3850 «а»= 11456, «с»= 0,001619948. Для видеокарты HD3870 получаем «а»= 11836, «с»= 0,00111406. Построим линии, соответствующие этим параметрам и отобразим их на общем графике.
График 10
Что касается рассчитанных коэффициентов «а», то разница в результатах видеокарт HD3850 и HD3870 на частоте 650 МГц несколько подросла, и составила уже 3,3%. Впрочем, для таких экстраполяций погрешность получается вполне приемлемая. Если честно, мы ожидали, что разница в результатах будет значительно больше.
На этот график можно было бы еще добавить экстраполяции результатов для этих же видеокарт с частотой GPU, равной 800 МГц. Рассчитывается все точно так же. Но видеокарта HD3850 на такой частоте GPU не заработала, поэтому просто приведем результаты для видеокарты HD3870 - коэффициент «а» равен 14069, коэффициент «с» - 0,000878637.
Сведем итоговые результаты в таблицу:
|
HD3850 |
|
HD3870 |
|
частота GPU, МГц |
a |
c |
a |
c |
500 |
9237 |
0,002039 |
9260 |
0,001606 |
650 |
11456 |
0,00162 |
11836 |
0,001114 |
800 |
|
|
14069 |
0,000879 |
О «физическом» смысле параметра «а» мы уже говорили. «Чистая сила GPU» показывает, какую максимальную теоретическую скорость можно было бы достичь в данном тесте при фиксированной частоте GPU, если увеличить частоту (а значит и пропускную способность) видеопамяти до бесконечности. С параметром «с» немного сложнее. Чем отличаются видеокарты HD3850 и HD3870, если он поставлены в совершенно одинаковые условия и работают на одной частоте? Ответ - только типом используемой видеопамяти, DDR3 и DDR4 соответственно. Или же, говоря по-другому – таймингами памяти. Что интересно, поскольку в показателе экспоненты нашей функции в роли Х фигурирует частота видеопамяти, для получения безразмерного показателя параметр «с» как раз и должен иметь размерность «времени». Но мы знаем, что тайминги памяти в видеокартах задаются как правило «жестко» и не зависят от частоты GPU. А судя по нашей таблице, даже небольшое изменение частоты GPU приводит к существенному изменению параметра «с». Возникает нестыковка. Исходя из здравого смысла, можно предположить, что параметр «с» отвечает не за тайминги видеопамяти, а отражает нечто другое.
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.