Заклятые друзья в одной упряжке, или Radeon HD 3870 + Geforce 9600GSO = ?

27 декабря 2008, суббота 05:19
для раздела Блоги
Предисловие.

Являясь участником команды распределенных вычислений TSC! Russia я уже давно подумывал о том, как бы увеличить свою производительность (считая на обычном CPU клиенте и на GPU2 клиенте на ATI Radeon HD 3870) в основном командном проекте Folding@Home. Свободный PCI-E 4х слот на материнской плате и удачно подвернувшаяся на нашей барахолке Albatron Geforce 9600GSO позволили малой кровью значительно поднять свой рейтинг в команде и в проекте в целом. Но в этой статье речь пойдет совсем о другом. На просторах интернета я несколько раз наталкивался на новости, что кому-то, где-то удалось заставить работать видеокарту ATI Radeon для обработки графики, а Nvidia Geforce – для обработки физики. Но более-менее вразумительного руководства я не нашел, поэтому решил разобраться сам. Итак, приступим.

Тестовый стенд.

Подопытными стали:
    AMD Opteron 165@2400 Мгц, Vcore=1,42 В.
    MSI K8N Neo4-FI
    2Гб DDR400 Samsung UCCC@436Мгц с таймингами 3-3-3-7-2Т
    Sapphire Radeon HD 3870 на штатных частотах 776/1125Мгц (ядро/память)
    Albatron Geforce 9600 GSO на штатных частотах 550/1375/800Мгц (растровый домен/шейдерный домен/память)
    Thermaltake PurePower 460Вт




Всё это добро трудится под управлением Windows XP SP2. Следует отметить, что под Windows Vista подобный тандем невозможен в силу другой драйверной модели.

Для Radeon HD 3870 использовался драйвер Catalyst 8.12, для Geforce 9600 GSO – Forceware 180.48.

На материнской плате MSI K8N Neo4-FI три разъема PCI-E: 16x – для графической карты, 1х — для других карт расширения и 4х (к которому фактически подведены линии PCI-E 2х) открытый с задней стороны, т.е. в этот разъем без доработки можно поставить любую карту (с разъемом от 1х до 16х).

Подводные камни.

Проблемы начались после установки в систему Geforce 9600GSO. Драйвер Forceware вроде бы устанавливался, но при попытке залезть в свойства экрана — выдавал ошибку. Для корректной его установки понадобилось извлечь из системного блока Radeon HD 3870 и подключить монитор к Geforce 9600GSO (причем последняя по прежнему оставалась в слоте PCI-E 4x). После этой манипуляции драйвер успешно установился и я вернул HD 3870 на законное место. Расширив рабочий стол на 9600GSO, я приготовился вкусить прелести PhysX. Но не тут-то было! «Подружить» карты «с наскоку» не удалось. Ни oZone FluidMark, ни MKZBenchmark, ни PhysxFluids by KennethBugeja не обнаруживали Hardware PhysX, и вся физика обрабатывалась с помощью ЦП.
На вопрос, заданный службе поддержки пользователей Nvidia о возможности совместного использования Radeon HD 3870 для ускорения графики, а Geforce 9600 GSO для ускорения физики был получен отрицательный ответ.

Спустя пару дней снова начав поиск по данному вопросу я наткнулся на новость, что Nvidia выпустила PhysX software версии 8.11.18 (c драйверами 180.48 ставится версия 8.10.13). После обновления PhysX software желаемый результат был достигнут. oZone FluidMark, MKZBenchmark и PhysxFluids by KennethBugeja смогли обнаружить аппаратный ускоритель физики. Однако, стоит заметить, что некоторые программы всё же не смогли запуститься. Например PhysX Soft Body Demo By Kenneth Bugeja, Fluids: Technology Demo.

Используемые программы и методика тестирования.

Тестирование проводилось в следующих программах:
oZone FluidMark
MKZBenchmark
PhysxFluids by KennethBugeja

RMClock 2.25
Rivatuner 2.20
В каждой программе тестирование проходило в нескольких режимах.
Для выявления процессорозависимости, с помощью программы RMClock 2.25 изменением множителя на минимальный, процессор принудительно переводился на частоту 1068МГц. Была так же предпринята попытка оценить влияние разгона видеокарты и «физического ускорителя» на производительность.

Режимы тестирования и их описание.
    Software PhysX, 1068MHz – физика обрабатывается процессором, частота процессора понижена до 1068МГц.
    Software PhysX, 2400MHz – физика обрабатывается процессором, частота процессора — 2400МГц.
    Hardware PhysX, 1068MHz - физика обрабатывается с помощью Geforce 9600GSO на штатных частотах. Частота процессора понижена до 1068МГц.
    Hardware PhysX, 2400MHz - физика обрабатывается с помощью Geforce 9600GSO на штатных частотах. Частота процессора - 2400МГц.
    Hardware PhysX 275/1375/800 - физика обрабатывается с помощью Geforce 9600GSO с частотой ядра, сниженной до 275МГц. Частота процессора - 2400МГц.
    Hardware PhysX 275/700/800 - физика обрабатывается с помощью Geforce 9600GSO с частотой ядра, сниженной до 275МГц и частотой шейдерного домена сниженной до 700МГц. Частота процессора - 2400МГц.
    Hardware PhysX 550/1750/800, 837/1125 - физика обрабатывается с помощью Geforce 9600GSO с частотой шейдерного домена повышенной до 1750МГц, графика рисуется ;) с помощью HD 3870 c частотой ядра, повышенной до 837МГц. Частота процессора - 2400МГц.


Результаты тестов.

oZone FluidMark
Настройки по умолчанию: разрешение 1280х1024, полноэкранный режим, время тестирования 60 секунд.



Единственное, что мне показалось странным в этом (и не только в этом) тесте, это то, что падение производительности при уменьшении частоты шейдерного домена почти в два раза, оказалось сравнительно небольшим - около 17% (по минимальной частоте кадров). В добавок ко всему при повышении чатоты шейдерного домена на 30% производительность практически не выросла. На самом деле очень странно, так как имено шейдерный домен занимется «обсчетом» физики. Возможно ограничивающим фактором максимальной производительности является либо шина PCI-E 2x, либо слабый (по современным меркам) центральный процессор (хотя по показаниям RivaTuner, во время теста ядро процессора не загружалось, более чем на 50%).

MKZBenchmark
Настройки: lowResolution(1280x1024)



Этот бенчмарк сильнее среагировал на понижение частоты шейдерного домена, но по-прежнему не так сильно, как можно было подумать. Снижение производительности составило 23% (по минимальной частоте кадров). На повышение частоты реакция оказалась в пределах погрешности измерений (1 кадр в секунду).

PhysxFluids by Kenneth Bugeja
Настройки: по умолчанию.



В виду отсутствия теста и показа FPS в PhysXFluids, для наблюдения за частотой кадров использовался плагин от RivaTuner 2.20. В каждом тесте (всего их 5: Tube, Boiling Water, Waves, Centrifugal, Funnel) включалась симуляция с настройками по умолчанию. После 20-30 секеунд во всех тестах (за исключением Funnel) частота кадров «стабилизировалась» на одном уровне. Что каcается теста Funnel, в силу его особенности, фиксировалась минимальная частота кадров.

Для этой программы было выбрано всего 4 режима тестирования, т.к. В программе видимо заложено искусственное ограничение на частоту кадров в районе 66-67 кадров в секунду.
И во всех тестах (кроме Funnel) при ускорении физики с помощью 9600GSO мы видим эти 66 кадров в секунду. Даже снижение частоты процессора не оказывает заметного влияния, видимо в программе используются сравнительно простые расчеты.

Вывод.

По проведенным тестам видно, что Nvidia PhysX на видеокарте 9600GSO не оставляет ни единого шанса обычному центральному процессору, когда дело касается обработки физики. Видеокарта превосходит процессор по производительности в 2-3 раза. Браво, Nvidia! За сравнительно короткий срок с момента покупки Ageia сумели внедрить поддержку PhysX для своих видеокарт. Более того — с новым PhysX software 8.11.18 ускорение физики видеокартами Nvidia возможно и в случае, если ускорением графики занимается видеокарта от AMD!






P.S. Единственное, что я не могу объяснить — это непропорциональное снижение/увеличение производительности при изменении частоты шейдерного домена. Возможно я еще вернусь к этому вопросу.

P.P.S. Камрад Guzz провел похожее тестирование в бета версии операционной системы Windows 7. С его статьей можно ознакомиться здесь: http://people.overclockers.ru/Guzz/record1

Обсуждение, комментарии, тухлые овощи - здесь.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают