Вопрос по поводу CUDA вычислений

B_a_n_z_a_i

Вычислительная мощность в CUDA видеокарты прямо пропорциональна ее производительности в флопсах? Или есть еще факторы?

okis

Что такое вычислительная мощность?
Не всякий алгоритм хорошо ложится на CUDA, т.е., загрузить её "на 100%" в реальности не представляется возможным.

Filan

Вычислительная мощность в CUDA видеокарты прямо пропорциональна ее производительности в флопсах?
Если я правильно понял что ты хотел сказать, то именно в флопсах и измеряется "вычислительная мощность" всего что угодно, в том числе видеокарт с использованием CUDA.

kotenok1710

Или есть еще факторы?
Если задача хорошо параллелится, то имеет смысл в куде считать.
Но тут стоить иметь ввиду, если задача объемная, то ей нужно много оперативы, а если считать на видюхе, то , соответственно, много видеопамяти.

B_a_n_z_a_i

В последнее время стало все больше появляться рендеров, использующих видюху совместно с процом.
Хочу оценить насколько перспективно переходить на вычисления на видеокарте. Если производительность в флопсах главный фактор, то получается, что производительно gtx 295 (примерно 1800 ГФлопс) превосходит gtx 580 (примерно 1500-1600 ГФлопс) и ее можно использовать для оценки макс производительности.
Я прав? Или есть какие-то разные версии CUDA?

Serab

Если я правильно понял что ты хотел сказать, то именно в флопсах и измеряется "вычислительная мощность" всего что угодно, в том числе видеокарт с использованием CUDA.
А если задача не на floating-point вообще?
Подсказка: для умножения вещественных матриц можно производительность измерять в флопсах, для битовых, например, матриц — в XORS'ах (там операция xor используется для алгоритмов обхода графов — EPS (edges per second).

Filan

А если задача не на floating-point вообще?
Подсказка: для умножения вещественных матриц можно производительность измерять в флопсах, для битовых, например, матриц — в XORS'ах (там операция xor используется для алгоритмов обхода графов — EPS (edges per second).
Неужели ты думаешь, что ты один здесь знаешь что такое флопсы и чем этот показатель плох?

Filan

В последнее время стало все больше появляться рендеров, использующих видюху совместно с процом.
Хочу оценить насколько перспективно переходить на вычисления на видеокарте. Если производительность в флопсах главный фактор, то получается, что производительно gtx 295 (примерно 1800 ГФлопс) превосходит gtx 580 (примерно 1500-1600 ГФлопс) и ее можно использовать для оценки макс производительности.
Я прав? Или есть какие-то разные версии CUDA?
Есть разные флопсы. Потрудись погуглить на эту тему. Даже в вики написано, что может быть не так в флопсах разных железок.

B_a_n_z_a_i

Читал.
Похоже остается только экспериментальный путь)

mari33

Да, версии CUDA бывают разные. Причем чем старше версия, тем язык все более похож на человеческий. Здесь в среду есть пара презентаций по теме.

B_a_n_z_a_i

Я правильно понимаю, что gtx 295 не поддерживает посл версии CUDA? Если да, то скажется ли это на скорости вычислений?

Viktory-s

Но тут стоить иметь ввиду, если задача объемная, то ей нужно много оперативы, а если считать на видюхе, то , соответственно, много видеопамяти.
В 4-ке видео-память и системная могут быть объединены.
Вообще четвёрка просто рвачная получилась:
CUDA 4.0 Library Performance Overview http://developer.nvidia.com/content/cuda-40-library-performa...

Troyn09

Но тут стоить иметь ввиду, если задача объемная, то ей нужно много оперативы, а если считать на видюхе, то , соответственно, много видеопамяти.
карточки с 3Gb оперативы существуют

Troyn09

что производительно gtx 295 (примерно 1800 ГФлопс) превосходит gtx 580 (примерно 1500-1600 ГФлопс)
295 - двухголовая
580 - одноголовая
видимо выпуск двухголовой 590 не за горами
ориентироваться на 295 я бы не стал

B_a_n_z_a_i

gtx 590 давно уж продается)
ее производительность порядка 2500 ГФлопс.

Troyn09

пропустил ее выпуск
исходя из преведенной производительности и ограничений новых версий куды
видимо нужно брать 4х580 или 4х590 :020:
а да, еще tesla бывает

B_a_n_z_a_i

Спасибо, кэп)
Есс-но, чем новее, тем лучше.
Только gtx 590 стоит 20000, gtx 580 стоит 12000, а gtx 295 б.у. я купил за 3500 р. Поэтому я и пытаюсь выяснить производительность не покупаю сразу новую дорогую видюху

Troyn09

ты бы обозначил цели и бюджеты, и кто будетплатить

B_a_n_z_a_i

Цель - более быстрый и качественный рендер. На одну картинку в разрешении 1700x1100 должно уходить не более 15 мин.
Расходы должны быть минимальны. Первоначально буду пробовать дома, если все получится - покажу руководству - такое-то качество, столько-то времени, стоить будет столько-то.
Для меня плюс - фриланс + игры будут лучше идти
Кроме того, хочу оценить насколько это перспективно.

Troyn09

мое имхо мне подсказывает, что таки рендер может ускорится
к руководству можно и нужно приходить с таким тз - хочу провести исследование производительности рендеринга на такой-то видеокарточке относительно наших задач
вот вам ссылки на тестовую производительность видиокарточек в подобных задачах
выгода по времени/еще чему-то теоритически такая, дайте бабла
тестировать что-то за свои кровные в домашних условиях - ну его нахуй
разрешение правда у тебя странное

procenkotanya

Добавлю чего ещё не упомянули в треде.
Кроме flops'ов полезно смотреть на memory bandwidth: для части задач показатель даже более важный, чем чистые флопсы. Для рендера вообще лучше руководствоваться экспериментальными данными.
295 и 590 сравнивать c другими не совсем корректно, т.к. это двухчиповые карточки, с точки зрения CUDA-вычислений каждый из них — это два отдельных девайса. Не все реализации рендереров могут использовать два cuda-девайса одновременно.
Микроархитектура карточек поколения Fermi (GTX 4xx,5xx) несколько лучше, что при прочих равных делает их предпочтительнее.
Рендер это настолько популярная и специальная задача, что на специализированных сайтах уже наверняка лежит куча тестов разных cuda-capable рендереров. Может, с них и начать? :]
Домой для тестов я рекомендовал бы брать gtx560 Ti.

B_a_n_z_a_i

Как правило руководство скупо, и много денег не даст без конкретных цифр.
Да и кроме того, самому интересно

B_a_n_z_a_i

Разумеется я смотрел сайты по теме
На форумах в основном флуд, на сайтах рендеров много рекламы, адекватной инфы мало.
Двухчиовые решения работают нормально, у меня сейчас стоят две gtx 295.

Codcod

Нахрена тебе куда? ставь Vertex7 5TFlop обеспечены :shocked:

Filan

Vertex7 5TFlop
А можно урл на сие чудо (описание а то гугл всё не то находит.
И ещё один с ценой обязательно.

Codcod

Ошибся в одной букве а такая разница.
Xilinx Virtex7
http://www.xilinx.com/products/silicon-devices/fpga/virtex-7...
:D

B_a_n_z_a_i

А есть рендеры., которые могут использовать эту штуку?

Filan

Ошибся в одной букве а такая разница.
Xilinx Virtex7
http://www.xilinx.com/products/silicon-devices/fpga/virtex-7...
:D
Хм. А разве оно не является неким аналогом сетевухи? Нигде в характеристиках не видел упоминания о производительности, а вот о пропускной способности полно.

viktor954

Нет таких рендеров. По-моему человек написал совершенно неподумавши.
Тот же VRay рендерит с использованием OpenCL, так что ему без разницы, NVidia или ATI.
Там, где есть OpenCL — AMD хорошо:
http://www.phoronix.com/scan.php?page=article&item=openc...
Там, где есть только CUDA - AMD нет вообще :)
http://stackoverflow.com/questions/4638324/nvidia-vs-amd-gpg...

B_a_n_z_a_i

Vray не умеет рендерить используя ГПУ.
Vray-rt - что-то вроде предварительного рендера может юзать гпу
Меня AMD как-то и не интересует)

viktor954

Да, я про RT, конечно же.
UPD: Вот список того, что официально ускоряется CUDA-ой:
http://www.nvidia.com/object/cuda_app_tesla.html

B_a_n_z_a_i

Знаю. Вопрос не в этом.
Есть рендеры, которые юзают ГПУ и рендерят довольно неплохо (например Octane, Arion)
Хочется понять за какое ориентировочно время я смогу получать картинку нужного качества.
Сейчас стоят две gtx295, со временем думаю докупить gtx 590 - как подешевеет. Опять таки, хотелось бы понять, действительно ли будет большой прирост производительности?
Если считать по флопсам - то не очень, но вроде бы не все так просто.
Остается только экспериментальный путь

8rik8

флопсы они разные бывают как успели заметить. есть дабловые, есть сингловые(флотовые).
в любом из этих случаев решения от AMD рвут видию.
если сравнивать топовые двуголовые решения, то:
590 ГТХ ~ 2500 Гфлос на флотах и 2500 / 8 =~ 300 Гфлопс на даблах.
на линейке спец ускорителей Тесла подтянута только дабловая производительность (в соотношении 1:2 вместо 1:8 на граф. картах) + ECC память.
у Radeon 6990 ~ 5100 Гфлопс на флотах и 1275 Гфлопс на даблах.
так что чисто по мясу радики предпочтительнее.
программировать только их надо на OpenCL. он менее няшный с точки зрения прикладного программиста, но зато кроссаппаратный и кроссплатформенный,
т.е. код на OpenCL будет работать как на AMD, так и на nVidia. что не скажешь о куде.
по сути процентов на 80% та жа куда. только в более общей постановке с заточкой на абстрактную модель вычислительного устройства.
управляющая часть (контекст, компиляция, очереди, буферы, события и т.п.) - с десятка два функций - больше особо и не надо)
вычислительные ядра пишутся на расширении C - OpenCL C.
вообще OpenCL выглядит довольно перспективно, ибо уже даже драйвера для многоядерных процессоров есть от Intel и AMD.
интеловский драйвер OpenCL на достаточно сыром коде, написанном в лоб, дает порядка 30% пика производительности, что довольно круто. если так дело пойдет, то про OpenMP можно будет забыть.

B_a_n_z_a_i

Это хорошо и здорово, но вообще говоря абсолютно не в тему.
Radeonы идут лесом - нормальные рендеры пока только на куде. Про разные типы уже сказали, это никак не проясняет картины.
В играх - gtx 590 и radeon hd 6990 идут примерно на одном уровне, при том, что gtx 590 дешевле и помимо куды обладает physx и довольно хорошо отлаженным 3d stereo
Оставить комментарий
Имя или ник:
Комментарий: