Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Takadam  
Дата: 23.03.14 15:40
Оценка:
Я изучаю параллельное программирование в свободное время. Нашел курс по CUDA на уда сити. Я посмотрел пару лекций и думаю, стоит ли на него тратить время? С CUDA я вообще не знаком. Насколько знание этой технологии поможет при устройстве на работу, если там будет требоваться знание параллельного программирования? Может лучше тогда учить OpenCL? CUDA ведь применяется не только в gamedev, правильно я понял, но в других областях, не связанных с gamedev'ом?

Короче, что посоветуете? Если что, в я gamedev не собираюсь.
Re: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 23.03.14 18:15
Оценка: 3 (1)
Ну, не слышал, чтобы CUDA в играх применялась сама по себе, разве что в виде уже готовых библиотек. Как и OpenCL всё это сделано именно для расчётов общего назначения. Посмотри любой курс, любую книгу и сразу поймёшь для каких предметных областей применим такой вот массивный параллелизм. Если тебе предметные области интересны, то выбери одну и занимайся именно ей, реализовывая алгоритмы либо на CUDA, либо на OpenCL (по-большому счёту не принципиально, но второй вариант в будущем выглядит перспективней). А ещё лучше — делай две реализации алгоритма: на CPU и на GPU, смотри, чтобы результат работы совпадал (это важно) и разницу в быстродействии замеряй.

И ещё тебе надо помнить, что сейчас разработка на CUDA и OpenCL носит очень низкоуровневый характер. Тебе буквально придётся считать байты, такты, выравнивания. Если тебе это не нравится, то выбери какую-нибудь высокоуровневую надстройку, чтобы оперировать абстракциями более высокого уровня и заниматься больше параллелизмом, а не байтовыжимательством.
Re: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: __kot2  
Дата: 23.03.14 19:29
Оценка: 3 (1)
Здравствуйте, Takadam, Вы писали:
T>Я изучаю параллельное программирование в свободное время. Нашел курс по CUDA на уда сити. Я посмотрел пару лекций и думаю, стоит ли на него тратить время? С CUDA я вообще не знаком. Насколько знание этой технологии поможет при устройстве на работу, если там будет требоваться знание параллельного программирования? Может лучше тогда учить OpenCL? CUDA ведь применяется не только в gamedev, правильно я понял, но в других областях, не связанных с gamedev'ом?

OpenCL лучше архитектурно, но реализация полный кал
Область GPGPU достаточно мала и если есть просто желание найти работу, то лучше изучать что-то другое
Re: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 24.03.14 04:13
Оценка: 5 (2)
Здравствуйте, Takadam, Вы писали:

T>Я изучаю параллельное программирование в свободное время. Нашел курс по CUDA на уда сити. Я посмотрел пару лекций и думаю, стоит ли на него тратить время? С CUDA я вообще не знаком. Насколько знание этой технологии поможет при устройстве на работу, если там будет требоваться знание параллельного программирования? Может лучше тогда учить OpenCL? CUDA ведь применяется не только в gamedev, правильно я понял, но в других областях, не связанных с gamedev'ом?


T>Короче, что посоветуете? Если что, в я gamedev не собираюсь.


1. GPU обладает той особенностью, что может выполнять много одинаковых команд одновременно. Таким образом, web-сервер на GPU не распараллелить никак. А вот одновременное вычисление условия WHERE для нескольких строк SELECT-запроса, решение дифференциальных уравнений, и т. д. и т. п. запросто.

2. Параллельное программирование очень часто вообще никак не связано с APU/GPU. И спрашивать больше будут про мьютексы, атомарные операции, volatile и т. п. А если нужен опыт в работе с GPU, то пишут прямым текстом CUDA или OpenCL.

3. Большого спроса сейчас на CUDA/OpenCL вне gamedev нет. Потому как (а) сейчас не так много задач, которые подходят для решения на данной архитектуре и при этом имеют проблемы с производительностью; (б) проще найти готовое решение в виде библиотеки.

4. CUDA специфична для nVidia. OpenCL это стандарт для всех (AMD, Intel, nVidia). Вроде бы как даже сама nVidia рекомендует OpenCL, кроме как случаев, когда из их карточки надо вытянуть полную производительность. Плюс OpenCL в том, что кернел OpenCL также может выполняться на CPU и APU.
Re[2]: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 24.03.14 07:53
Оценка:
Здравствуйте, Mystic, Вы писали:

M>3. Большого спроса сейчас на CUDA/OpenCL вне gamedev нет. Потому как (а) сейчас не так много задач, которые подходят для решения на данной архитектуре и при этом имеют проблемы с производительностью; (б) проще найти готовое решение в виде библиотеки.


Да? А мне наоборот показалось, что проблем с работой нет, особенно в столицах.
Но, повторюсь, знание CUDA/OpenCL не должно быть самоцелью, а лишь инструментом. Надо развиваться в предметной области (обработка видео, звука, машинное обучение и т.д.), а там уже реализовывать алгоритмы на всём, что только можно.
Re[2]: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Takadam  
Дата: 24.03.14 12:53
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, Takadam, Вы писали:


T>>Я изучаю параллельное программирование в свободное время. Нашел курс по CUDA на уда сити. Я посмотрел пару лекций и думаю, стоит ли на него тратить время? С CUDA я вообще не знаком. Насколько знание этой технологии поможет при устройстве на работу, если там будет требоваться знание параллельного программирования? Может лучше тогда учить OpenCL? CUDA ведь применяется не только в gamedev, правильно я понял, но в других областях, не связанных с gamedev'ом?


T>>Короче, что посоветуете? Если что, в я gamedev не собираюсь.


M>1. GPU обладает той особенностью, что может выполнять много одинаковых ком...


все просто и понятно. значит, не буду браться за Cuda или OpenCL на данном, начальном этапе.
Re[2]: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Temnikov Россия  
Дата: 24.03.14 20:58
Оценка:
M>3. Большого спроса сейчас на CUDA/OpenCL вне gamedev нет. Потому как (а) сейчас не так много задач, которые подходят для решения на данной архитектуре и при этом имеют проблемы с производительностью; (б) проще найти готовое решение в виде библиотеки.
Это хорошо если задача типовая. Да и хотя бы алгоритмы существуют. А если нет.
На прошлой работе на CUDE производился "реалтайм" обсчет видео потока с рентгеновским изображением. Софтверные (на CPU) реализации по скорости проигрывают на порядки.
Re[3]: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Muxa  
Дата: 24.03.14 21:22
Оценка:
T>все просто и понятно. значит, не буду браться за Cuda или OpenCL на данном, начальном этапе.
ну, и правильно. нам больше денег достанется.
Re[2]: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: AllHD Россия  
Дата: 03.04.14 12:47
Оценка:
Здравствуйте, Mystic, Вы писали:

M>1. GPU обладает той особенностью, что может выполнять много одинаковых команд одновременно. Таким образом, web-сервер на GPU не распараллелить никак. А вот одновременное вычисление условия WHERE для нескольких строк SELECT-запроса, решение дифференциальных уравнений, и т. д. и т. п. запросто.


Кстати, уже пару лет как стали использовать GPGPU для radix sort. Ускорение обычно раз в пять-шесть, чем у многопоточного варианта сродни concurrency::parallel_radixsort
Re[2]: Что насчет Cuda (и OpenCL) в параллельном програм-ии?
От: Kubyshev Andrey  
Дата: 05.04.14 03:43
Оценка:
M>1. GPU обладает той особенностью, что может выполнять много одинаковых команд одновременно. Таким образом, web-сервер на GPU не распараллелить никак. А вот одновременное вычисление условия WHERE для нескольких строк SELECT-запроса, решение дифференциальных уравнений, и т. д. и т. п. запросто.

Мне кажется про Селект ты сказал не подумав ..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.