[Закрыто] Посоветуйте GeForce для CUDA

Robert08

Уже разобралась, спасибо.
Добрый день,
Заказываю себе новый ПК для работы и собираюсь освоить CUDA.
Посоветуйте, пожалуйста, видеокарту.
У какой лучшее сочетание цены и качества на сегодня?
Брать две или одной хватит? (стоит ли брать две видеокарты, если да, то какие?)
Что лучше - одна крутая или две по-проще?
Компьютер нужен для вычислений, для работы, а не для освоения CUDA. То есть надо, чтобы конфигурация поддерживала CUDA.

Filan

собираюсь освоить CUDA
Уйду немного в сторону - зачем именно CUDA, когда есть OpenCL?

matvey61

вам для вычислений с двойной или одинарной точностью? если с одинарной то можно взять 670-ую, если с двойной- GTX TITAN.
Еще за 60-70к можно купить теслу http://www.sotmarket.ru/product/pny-tesla-c2075-tcsc2075-pb-...

matvey61

ради BLAS и FFT библиотек, например.
Я бы даже больше переформулировал вопрос- "Зачем CUDA, когда есть XEON PHI?"

Robert08

CUDA удобнее и популярнее, разве не так?
В любом случае я не отрицаю, что сильно отстала от жизни.
Если это OpenCL, правильно ли я понимаю, что подойдет практически любое современное железо?
С другой стороны, если конфигурация компьютера поддерживает вычисления с использованием CUDA, то он подойдет и для OpenCL.

Filan

Я бы даже больше переформулировал вопрос- "Зачем CUDA, когда есть XEON PHI?"
Дорогова-то для освоения технологии.
Для CUDA/OpenCL достаточно видюхи за 1000р. И даже интеловской интеграшки Sandy/Ivy достаточно для OpenCL.

Filan

CUDA удобнее
Спорно. Не универсальней точно.
и популярнее

Пока, наверно, ещё да. Но весь остальной мир пилит OpenCL и только одна NVIDIA свой CUDA.
А в свете Intel Phi, так вообще оно всё может уйти в прошлое в ближайшие годы, если Intel сильно постарается с производительностью и не будет задирать цены.
Если это OpenCL, правильно ли я понимаю, что подойдет практически любое современное железо?

Да. NVIDIA, AMD, Intel - основные конкуренты в этой области и все поддерживают OpenCL.
Ещё и OpenCL "более" кросплатформенная технология.
С другой стороны, если конфигурация компьютера поддерживает вычисления с использованием CUDA, то он подойдет и для OpenCL.
Да.
IMHO, для "поучиться" не надо покупать топовую и дорогую видюху - хватит и GT630/640.
А сейчас какая есть?

Robert08

Большое спасибо за информацию.
Сейчас еще никакой нет, только ноут старенький. Заказываю себе новый рабочий компьютер.
Мне сказали, что "однозначно" надо две одинаковые видеокарты для CUDA, это так?

matvey61

надо одну нормальную, в идеале теслу

Filan

Я же уже написал, что хватит любой одной.
http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_p...

Filan

надо одну нормальную, в идеале теслу
Для обучения? Что куришь?

matvey61

Для обучения? Что куришь?
для обучения-нет, для расчетов- да.

NataNata

для освоения потребуется 1 любая карта поколения geforce 6xx, сгодится даже ноутбучная. Обучение будет состоять в доооооолгом чтении мануалов и в рисовании клеточек и стрелочек на клечатой бумаге. А еще более правильная идея - достать аудио+видео+pdf лекции Борескова с ВМК. Кстати, совсем скоро на ВМК у него будет первая лекция (или она уже была). см гуглгруппу cuda.cs.msu.ru
OpenCL не советую на данный момент, с ним я наелся г@#на, когда переводил контору, где я работаю, на вычисления на видеокартах. Для каждой архитектуры (intel \ nvidia \ amd \ ...) нужно писать свое ядро. И отлаживать весьма неудобно.

Robert08

cuda.cs.msu.ru
Большое спасибо, очень полезно.
К сожалению, не смогу посетить лекции, но курс обязательно посмотрю.
Не пугает, что надо будет дооолго читать мануалы и рисовать стрелочки и клеточки.
Мне сказали, что надо две карты, потому что одна занята счетом, а вторая на экран выводит. Когда отлаживаешь, это важно.
Поэтому я и повторяю тут про две карты - две GT630 вполне бюджетно, и страдать при отладке совсем не хочется.
P.S. Нужно собрать компьютер для работы, а не для освоения CUDA. Но Тесла это уж слишком жирно.

shlyumper

Уйду немного в сторону - зачем именно CUDA, когда есть OpenCL?
Могу предположить, что ради http://developer.nvidia.com/gpu-accelerated-libraries. Для научных расчетов CUDA сейчас безусловно популярнее, про OpenCL говорят только в шутку.

Troyn09

P.S. Нужно собрать компьютер для работы, а не для освоения CUDA.
Так напиши полные требования к компу.

Filan

OpenCL не советую на данный момент, с ним я наелся г@#на, когда переводил контору, где я работаю, на вычисления на видеокартах. Для каждой архитектуры (intel \ nvidia \ amd \ ...) нужно писать свое ядро. И отлаживать весьма неудобно.
"Ты просто не умеешь их готовить" © :-D
Шутка. :-P
При всей неудобности (с твоих слов), OpenCL более перспективная технология, чем CUDA. Ну и не забываем об Vendor lock-in - задолбаешься слазить с иглы, даже когда конкуренты обойдут.
Так что если речь о том, что нужно на будущее освоить что-то в этом направлении, то лучше познакомиться со всеми основными вариантами, а потом выбрать более универсальный (хе-хе) для более детального изучения.

shlyumper

При всей неудобности (с твоих слов), OpenCL более перспективная технология, чем CUDA. Ну и не забываем об Vendor lock-in - задолбаешься слазить с иглы, даже когда конкуренты обойдут.
Так что если речь о том, что нужно на будущее освоить что-то в этом направлении, то лучше познакомиться со всеми основными вариантами, а потом выбрать более универсальный (хе-хе) для более детального изучения.
Ох уж этот vendor lock-in, и конкуренты, они такие конкуренты, и перспектив столько. По математике с плавающей точкой ближайший конкурент отстает года на полтора в производительности. Про всякие RDMA даже вспоминать не стоит. Вообще, народ вон не пугается OpenACC использовать, а там - о ужас! не то что vendor lock-in, там бесплатных компиляторов не существует. Единственный "серьезный" плюс OpenCL - его потенциальное наличие на всяких телефонах и прочих холодильниках в обозримом будущем (пара лет). Правда, кому он там нужен, кроме писателей angry birds on the fridge, не очень понято. Да и CUDA на них же тоже обещают.
Если же код самому писать, а не готовые библиотеки использовать/чужие программы гонять, то на практике CUDA C++ со всеми его шаблонами намного гибче и проще получается, чем OpenCL. Вон, тривиальный классический пример на CUDA C++:

template <unsigned int blockSize> __device__ void warpReduce(volatile int *sdata, unsigned int tid) {
if (blockSize >= 64) sdata[tid] += sdata[tid + 32];
if (blockSize >= 32) sdata[tid] += sdata[tid + 16];
if (blockSize >= 16) sdata[tid] += sdata[tid + 8];
if (blockSize >= 8) sdata[tid] += sdata[tid + 4];
if (blockSize >= 4) sdata[tid] += sdata[tid + 2];
if (blockSize >= 2) sdata[tid] += sdata[tid + 1];
}

Удачи с переводом этого на OpenCL, ага. (На всякий случай: все if'ы выполнятся на этапе компиляции ядра, а не на этапе его выполнения).

Filan

Ты можешь продолжать рекламировать CUDA, но сначала задумайся - AMD бросила свою FireStream в пользу OpenCL - думаешь это просто так?
Да и не будет CUDA там, где нет NVIDIA - не верю я в их доброту. Мы все прекрасно видим один такой вендорлокин и как он мешает жить. Зачем создавать себе ещё такие? Неужели история не учит?

shlyumper

Ты можешь продолжать рекламировать CUDA, но сначала задумайся - AMD бросила свою FireStream в пользу OpenCL - думаешь это просто так?
Кнечно не просто так. Firestream вообще нафиг никому не сдался, а так была надежда хоть как-то выплыть за счет расплывчатых обещаний совместимости-переносимости.
Да и не будет CUDA там, где нет NVIDIA - не верю я в их доброту. Мы все прекрасно видим один такой вендорлокин и как он мешает жить. Зачем создавать себе ещё такие? Неужели история не учит?
Конечно не будет CUDA в других местах. Но с вендорлокином не все так просто. Вот тут выше уже писали, что OpenCL - он не настолько уж хорошо переносим, как обещают (сам непосредственного опыта с OpenCL имел очень мало, чтобы выводы делать, но в чудо переносимости OpenCL не верил особо по ряду причин и без этого).
Как один профессор метко заметил, CUDA делали думая о разработчиках прикладного софта. OpenCL - думая о разработчиках железа.
Тут нужно понимать, чего хочется вообще от этого всего. Если задача ближе к битовым манипуляциям там всяким, и чуть менее чем полностью целочисленная, то AMD'шное железо очень даже хорошо смотрится, и на ряде задач даже делает nVidia с большим отрывом (раз так в 5, в пересчете на долларо-джоуль). Но задач таких мало. Большая часть задач все же жадные до плавающей точки, или вообще не дай бог много-GPUшных конфигураций. И вот тут у nVidia просто нет конкурентов. И на горизонте (судя по обещаниям AMD/Intel/...) не предвидится, чего уж там. Так что можно фантазировать о том, что OpenCL это без вендор-локина и все такое, но потом все равно покупать железо от того самого вендора, от локина которого убегаешь, и фигачить на нем. Только без удобных средств разработки, кучи отлаженных научных библиотек и т.п. Ну и без доступа ко всяким последним фишкам типа RDMA - на кластере дает очень заметный эффект при правильно реализованном алгоритме и соответствующем MPI-железе.

Filan

Если задача ближе к битовым манипуляциям там всяким, и чуть менее чем полностью целочисленная, то AMD'шное железо очень даже хорошо смотрится, и на ряде задач даже делает nVidia с большим отрывом (раз так в 5, в пересчете на долларо-джоуль). Но задач таких мало.
Значит биткоины чисто на интах считаются?

shlyumper

Значит биткоины чисто на интах считаются?
Да, чуть менее чем полностью. Там 99.99% вычислительной нагрузки - подсчет sha256, это на чипах от nVidia тупо вдвое медленее.
Оставить комментарий
Имя или ник:
Комментарий: