LINUX.ORG.RU

OpenCL vs CUDA


0

1

каково нынешнее состояние OpenCL? нередко встречаю мнение что OpenCL не готов для широкого применения, т.к. все реализации пока что глючные на большей части железа поддерживающего OpenCL.

легко ли портировать код CUDA на OpenCL?

★★★

Если cuda используется по максимумому — плюсы, шаблоны и прочие удобства, то портировать будет достаточно гиморно, ибо на opencl как минимум в два раза больше кода потребуется.

А зачем тебе opencl ? Пиши на cuda. В ней и отлаживаться проще и она существенно вылизанней.

Reset ★★★★★
()
Ответ на: комментарий от Reset

на opencl как минимум в два раза больше кода потребуется.

Судя по простеньким примерам, не в два, а чуть ли не на порядок. Если простейшие функции, в CUDA занимающие 2-3 строки, в openCL'е раздуваются чуть ли не до страницы кода...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Reset

>А зачем тебе opencl ?

я собственно и пытаюсь выяснить нужен ли мне OpenCL

vasaka ★★★
() автор топика
Ответ на: комментарий от Reset

Под родной мак вроде нормально.... Есть надежда

namezys ★★★★
()
Ответ на: комментарий от Reset

По крайней мере, оно хоть как-то работает на ATI, в отличии от CUDA.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от Reset

>На ATI.

Ну так они когда-нибудь поправят, зато проект заранее будет кроссплатформенным (в смысле карт) и в будущем не надо будет его переписывать.

Впрочем, это зависит от целей автора. Если ему надо прямо сейчас и очень быстро, то CUDA.

anonymous
()
Ответ на: комментарий от vasaka

Ага, не перепутал ты, у меня ассоциация просто. Внизу есть список лучших пожертвовавших и все нерусские, так что моё предположение не верно.

ZenitharChampion ★★★★★
()

Как раз еду с конференции, где этот вопрос освещался. Большинство использует все-таки CUDA, но был один докладчик, который сравнивал производительность cuda и opencl на карточках nvidia, получил сравнимые результаты и остановился на opencl, так как ему нужна была переносимость.

Да, и кстати, я спрашивал сотрудников AMD, они говорят что CUDA жить осталось не долго, а вот за opencl наоборот светлое будущее ;)

lukash
()
Ответ на: комментарий от lukash

Да, и кстати, я спрашивал сотрудников AMD, они говорят что CUDA жить осталось не долго, а вот за opencl наоборот светлое будущее ;)

Я сильно удивился, если бы сотрудники AMD сказали что-то другое :)

Reset ★★★★★
()

OpenCL на ATI не безглючен, но писать уже вполне можно. При этом хорошо бы сначала определиться с устройством, для которого пишется код, и от этого идти. Потому что для разных устройств разные одни и те же «оптимизации» могут дать противоположный результат.

tim239 ★★
()
Ответ на: комментарий от lukash

осталось дождаться, когда они запилят рабочие дрова для видюшек

TERRANZ ★★★★
()
Ответ на: комментарий от tim239

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

vasaka ★★★
() автор топика
Ответ на: комментарий от vasaka

но бонусом является то что топовая производительность не нужна, просто вывести некоторые длинные операции на real-time.

vasaka ★★★
() автор топика
Ответ на: комментарий от vasaka

Тогда OpenCL - в крайнем случае на процессоре запустится.

tim239 ★★
()

Предыдущая работа была связана с вычислениями на видеокарте. Использовали OpenCL. Впечатление хорошее, нужно быть чуть более Ъ чем на CUDA, но в целом и CUDA тоже не настолько торт чтобы ее превозносить. Особенно «радует» на CUDA дебаг на видеокарте, о котором так громко орут. Для него нужно два компа с двума видяхами и студия с не менее анальным плагином. Это надо соеденить и потом дебагать. Короче цирк.

В CUDA пошире синтаксис будет, зато нужно компилять файлы. В OpenCL это делается в рантайме путем передавания строк в функцию (OpenGL way). Работают приблизительно на одинаковой скорости. Зато OpenCL работает на ATI, которая проигрывает NVidia в работе с памятью и на такого рода тестах сливает реально жирно. Зато ATI хорошо оптимизирует длинные математические формулы. У них в доках есть набор выражений, которые будут преобразованы в одну инструкцию. Если их юзаешь, то помогаешь видеодрайверу. Но все же на реальных задачах ATI конечно в жопе. Мы даже меряли карточки подороже чем аналоги на Nvidia. Все равно сливают. Но вообще код таки очень интенсивно работал с памятью.

Эмулировать на проце OpenCL умеет только ATI или Apple с любой видяхой. Строка платформы например на винде пишет конкретную вендоровскую платформу, например CUDA, а на Apple пишет Apple. Тоесть там общая прослойка и переключается на проц. Но не льстите себе что все так прекрасно на проц ляжет. Если у вас код хоть как-то специфичен к всяким железным вещам типо общей памяти или количества аппаратных потоков, то не удивляйтесь если вы не догадаетесь протестировать его при отсутсвии у устройства общей памяти или присутсвии всего одной нити. А это проц.

Не смотря на то что синтаксис кроссплатформенный, но не все девелоперы читали спеки и вы можете написать код, который работает у вас. Но тестировать нужно на очень разном железе, косяки всплывут точно. Я вон код с Apple к себе на Gentoo получил разок, так час потратил на то, что там платформу нельзя указывать null. А на Apple если null, то берет дефолтную. На Линуксе же на CUDA отправляет лесом.

Еще прикол. Видесистема вырубает по дефолту ядро, которое работает слишком долго. Борьба с зависаниями. Но слишком долго - это около 10 сек. И теперь внимание, барабанная дробь, как это лечится. В винде - ключик реестра, который нужно очень долго гуглить. В линуксе - работой без иксов и все, уже лучше... Пальма первенства передается Apple - не лечится! )

vertexua ★★★★★
()

Помню, как дрались-дрались в тех же условиях OpenGL и Glide, а потом пришёл DirectX :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

что это должно подтверждать?

вроде и так понятно что рынок игрушек один из самых больших, а там DirectX впереди, с этим я не спорил.

vasaka ★★★
() автор топика
Ответ на: комментарий от KRoN73

еще в этом графике забавно что показатели DirectX тоже падают, хотя использование наверняка растет.

vasaka ★★★
() автор топика
24 сентября 2011 г.
Ответ на: комментарий от vertexua

> Еще прикол. Видесистема вырубает по дефолту ядро, которое работает слишком долго. Борьба с зависаниями. Но слишком долго - это около 10 сек. И теперь внимание, барабанная дробь, как это лечится. В винде - ключик реестра, который нужно очень долго гуглить. В линуксе - работой без иксов и все, уже лучше... Пальма первенства передается Apple - не лечится! )

o_O а нельзя ли как-нить это снять, не вырубая иксов? 10 секунд - смешно, конечно =)

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder

Про openCL говорить не буду, но скажу, на какие грабли с кудой натыкался: во-первых, всяких oom-killer'ов для нее нет, так что если что набажил - только reset поможет; во-вторых, сегфолт в куде приводит к «веселым картинкам» на мониторе (но при этом иксы обычно не падают: все работает, как и раньше); ну и дополнение к «во-первых»: баг средней тяжести (не вешающий намертво) приводит к полной или частичной (указатель мыши бегает - и все) потере контроля над иксами.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.