Pull to refresh

Comments 43

glsl на ати уделывает куду… жаль, до этого момента был полноценным привержецем НВидии =( теперь буду начинать задумываться…
Помоему видеокарты разного класса, хотя и одного поколения.
даже не одного поколения
автор немного ошибся, насчет G92 у FX5600 — там все-таки G80
а G92 у 8800 GTS 512mb и 250 GTS
и если уж сравнивать HD4890, то только с gtx280
Что-то я не увидел что уделывает.
В какой таблице?
Смотрите 1-ю и 2-ю таблицы.
Все предельно наглядно.
Хмм, или я таблицу не вижу или чем меньше Fps и Gflops тем лучше?
На таблицах fps и gflops у Cuda больше чем у Glsl не так ли?
Ок, смотрим.

1-я таблица, NVIDIA, 2048 частиц, CUDA:
FPS: 1398
GFLOPS: 117.27

2-я таблица, ATI, 2048 частиц, GLSL:
FPS: 3109
GFLOPS: 260.71

В 2.22 раза ATI GLSL быстрее NVIDIA CUDA и в 3.43 раза быстрее NVIDIA GLSL.

Конечно видеокарты разные, но поколение одно.
Отрыв ATI просто поражает.
поколения немного разные, RV790 как раз примерно раза в 2 быстрее G92
но если протестить GT200, то результаты будут примерно равны с RV790
Видеокарты были выпущены с интервалом в год или больше. Пусть прогонят на GTX 480 — вот это будет интереснее. А, и кстати, 4890 — двухчиповая.
Нифига. 4890 это вторая ревизия 4870.

А вообще выбор видеокарт очень странный — было бы интересно сравнить не слона с китом, а одно поколение и одну нишу. То есть HD 5870 и GTX 480.
Вы абсолютно правы. Но сравниваются не две разные видеокарты, а технологии внутри одной архитектуры.

К несчастью, флагманских моделей на руках не было.
Учи матчасть, 4870х2 — двухчиповая, 4890 это работа над ошибка 70ой серии.
5890 двухчиповая ^_^
Это я к тому, что те кто не следят могут перепутать.
Дело в том, что у этих карточек разная архитектура.

На карточках AMD стоят суперскалярные процессоры, а на Nvidia — скалярные.

Но те карточки от AMD, которые мы тестировали физически не имели на чипе локальную память, и следовательно некоторые алгоритмы, которые на этой самой локальной памяти завязаны, начинают безбожно тормозить.

Скромное мнение: оба класса карточек весьма хороши в своём.
Перенесите в публичный блог, на главную уйдет, материал хороший.
А вы пробовали запускать написанный OpenCL код на гибридной системе (то есть не выбирая конкретный девайс)?
Вы хотели сказать, «переложить выбор устройства на усмотрение API» или «запустить одну программу на CPU и GPU одновременно»?

Суть гетерогеных вычислений — во втором.
Вызов API функций без указания устройства приведёт к первому.
Хмм… я предполагал, что при достаточном количестве задач на исполнение они начнут распределяться между устройствами, или я не прав?
В любом случае я имел ввиду именно «запустить одну программу на CPU и GPU одновременно».
Программист сам должен определять какая задача на каком устройстве будет исполнена.
Можно одну и ту же задачу на разных данных запустить.
Можно разные.
Но всё-равно это придётся сделать руками.
Я если честно не понял для чего эти сравнения. OpenCL это надстройка над решениями разных прозводителей, чтобы проще было портировать код. Постепенно потерю производительности будут снижать.
В целом верно, но не совсем.

Если для NVidia — OpenCL это действительно надстройка над CUDA, то для продуктов AMD это единственный способ программировать видеокарту для решения задач общего назначения (подразумеваем, что шейдеры заточены под графику и их мы использовать не будем, хотя и можем).

И не совсем ясно над каким решением OpenCL является надстройкой для центральных процессоров.
Brook+ больше не поставляется с ATI Stream SDK, от него отказались в сторону развития открытого стандарта OpenCL.
А можно как-нибудь получить скомпилированные EXE-шники? Погонять в домашних условиях.
На винте остались только тесты для CPU, чтобы их погонять придётся поставить ATI Stream SDK.
Вот тест для 512 частиц, с рендерингом.

rghost.ru/2114631

Несмотря на то, что тесты проводились на карточке серии Quadro, понятно, что обычный GeForce 8800 GTS или GeForce 250 GTS дадут схожие результаты (все три карточки основаны на чипе G92).

Вроде как Quadro FX5600 основана на G80, как и 8800 GTS, а вот 256 GTS действительно на G92.
Первой моделью на основе полноценного чипа G92, со всеми включенными потоковыми процессорами, была GeForce 8800 GTS 512MB, выпущенная в конце 2007 года


Источник ixbt и википедия.

Про Quadro вы оказались правы, недоглядел, исправлюсь.

До 8800gts 512mb которая основана на g92, были две карты 8800gts 320mb и 8800gts 640mb основанные на g80.
Карта Radeon HD4890 всех порвала. Я ничего не напутал?
На шейдерах. Тем более сравнивать разные таблицы в общем случае мы не имеем права.
Только значения внутри одной таблицы.

И с OpenCL на AMD всё несколько плачевно, хотя это, предположительно, ненадолго.
порвала на тесте GLSL-версии реализации.
видимо потому что на HD4890 шейдерных процессоров в 6,25 раз больше чем на FX5600.
(хотя порвала-то не в 6,25 раз)
Очень полезная статья, хотя зря тестировались конкуренты разных поколений.

Выложите исходники на GitHub, кто-нибудь оттестирует на одном и том же поколении.
используйте С++ wrapper(cl.hpp) для вызовов OpenCL функций на хосте, на порядок удобнее и меньше писанины. Можно найти на сайте хроноса.
Как ни прискорбно, но нет.
Согласен, было бы интересно.
Насколько я помню на ATI картах официальная поддержка OpenCL начинается с HD 5xxx
Так что лучше было брать 5-ю линейку данных видеокарт.

официальная поддержка OpenCL начинается с HD 5xxx

На страничке ATI Stream SDK в графе Supported Cards карты 4xxx серии стоят с пометкой Beta Support.

Карты пятитысячной серии на руках пока нет.
Про VLIW — странное утверждение. Какая ему разница, считается скалярное произведение в шейдере или же в OpenCL программе? И вообще, не плохо бы было показать исходники, а то когда о тестировании пишется с некими циферками, хотелось бы понимать, а к чему именно эти циферки относятся. Может, там вообще всё можно ещё в 10 раз быстрее сделать?
Как бы, github и bitbucket существуют, проблем с выкладыванием не должно быть.
UFO landed and left these words here
Очень полезная статья, спасибо. Хотелось бы видеть новые сравнения.
Only those users with full accounts are able to leave comments. Log in, please.