CUDA vs OpenCL
Решил попробовать CUDA.
Были большие ожидания, мол должен быть клевый язык с фишками, плюшками, интеграцией в VisualStudio.
Но с 2015 где update > 2 не работает, хм, ладно поставил 2013.
Отладка не заработала из коробки ( может ее и нет вообще
И еще был дико возмущен необходимостью писать вот такой код:
О новое тысячелетие! О космические корабли!((
После этого мираж о суперудобной куде растворился совсем(
Теперь смотрю в сторону брутального OpenCL, уж если брутализировать то шоб прям соусем !
Какие у CUDA нынче плюшки по сравнению с OpenCL?
Пока только одну нашел — студия подсвечивает ошибки в коде
Что еще?
Куда — это более зрелая технология с достаточно развитым toolchain разработки. Большие научные сообщества как правило предпочитают использовать Куда (не в последнюю очередь ввиду того, что NVIDIA инвестирует в данную технологию и под неё есть вагон библиотек). В OpenCL есть совместимость с устройствами помимо видеокарт NVIDIA и пользоваться ей чуть менее удобно. В целом же, обе технологии очень близки друг к другу. Писать эффективный код и под так, и под другую сложно.
Arxon
> Какие у CUDA нынче плюшки по сравнению с OpenCL?
Практически никаких 🙂 Возможно может наличие более удобных тулзов. Но Это все спорный момент, для AMD есть CodeXL. С учетом того что возможно новые разработки будут писаться на OpenCL и он на некоторых задачах OpenCL на AMD рвет CUDA на nVidia. Для будущего я бы выбрал OpenCL поддержка всех видеокарт в отличие от nVidia это больший плюс.
Andrey
> Практически никаких 🙂
Ну да, никаких Tesla в природе не существует. У CUDA R&D поддержка в разы больше, чем у AMD.
> Для будущего я бы выбрал OpenCL поддержка всех видеокарт в отличие от nVidia
> это больший плюс.
CL не только для GPU может быть
Andrey
> рвет
CUDA не может компилировать исходники в рантайме, может что-то и добавили, но весьма геморно.
OpenCL не поддерживает перегрузку функций и этот жуткий синтаксис кастов: convert_float, convert_int2 и тд.
Это мои основные претензии, у CUDA вроде с отладкой получше, с интеграцией с GL, с поддержкой фич в отличие от OpenCL на nVidia, но я выбрал OpenCL.
Кстати, OpenCL программы компилируются заметно дольше чем GLSL, возможно они лучше оптимизируются, либо так медленно перегоняются в CUDA ))
innuendo
> У CUDA R&D поддержка в разы больше, чем у AMD.
неа. У АМД Никак не меньше, и дальше еще будет лучше.
/A\
> OpenCL программы компилируются заметно дольше чем GLSL, возможно они лучше оптимизируются
про оптмизацию врядли, А насчет времени компиляции, то тут предположительно сложность шейдеров иная.
Andrey
> неа. У АМД Никак не меньше, и дальше еще будет лучше.
У них есть аналог Tesla ?
Напомни, что лично ты делал на compute shaders ?
Кимпиляция в рантайме это минус для удобства разработки.
В датацентрах сплошная нвидиа.
Вижу что CUDA как технология лучше, думаю спорить никто не будет.
Интересны ее килер фичи.
Ты что делать хочешь ? Лучше знать оба
Я вроде слышал, что CUDA быстрее, чем OpenGL и всякие вычислительные кластеры с GPGPU делают с NVidia’вскими карточками.
Но меня возмущает то, что она совместима только с одной IDE, причём её старой версии. Из-за этого я принципиально не буду использовать CUDA без крайней необходимости. Можно конечно наверное и из консоли, но не хочу так красноглазить. На винде это слишком неудобно.
innuendo
>>Ты что делать хочешь ?
Image processing на сервере
>>Лучше знать оба
Нет смысла знать даже один, главное знать как железка устроена и писать удобно код.
Arxon
> > > что делать хочешь ?
> Image processing на сервере
Любое железо или только Nvidia ?
Andrey
> про оптмизацию врядли, А насчет времени компиляции, то тут предположительно
> сложность шейдеров иная.
Напомни, что лично ты делал на compute shaders ?
innuendo
>>Любое железо или только Nvidia ?
Скорее всего нвидиа будет, на амазоне другого нету
Но не в сервере дело, дело в моем личном удобстве при разработке, так как пока нефига не работает расчет и чтоб проверять различные гипотезы не хочется ждать многие минуты. Сейчас не до оптимизаций, брутфорс бы немного скрасил процесс.
Забегая вперед. Есть ли у CUDA движения в сторону Inter Process Communication, всякие темы с шарингом памяти, семфорами?
Копирование туда сюда не впечатляет. Для текущей задачи это совсем не нужно, просто интересно как быстро к гомогенной архитектуре движутся.
Arxon
> Забегая вперед. Есть ли у CUDA движения в сторону Inter Process Communication,
> всякие темы с шарингом памяти, семфорами?
Ты рамсы попутал? Какие к черту семафоры? На ГПУ используюися барьеры памяти.
Лично я пишу на OpenCl + CodeXL, т.к. на студии уже давно не программирую. В CUDA есть только один плюс — интеграция в студию, где есть встроенный отладчик gpu