LINUX.ORG.RU

Хочу купить видеокарту для CUDA

 , ,


0

1

Привет, лор. Очередной выбора тред.

В данный момент пользуюсь видеокартой GeForce 9800 GT. Когда её покупал, не думал, что вообще нужно будет что-то вроде CUDA или чего подобного, покупал «для игрушек», уже на тот момент она была не топовая, не самая новая, но вполне приличная - все игрушки, какие мне были нужны - работали :) а я не шибко требовательный, да и моник 1280x1024 по современным меркам вроде для игрушек маленькое разрешение. :)

CUDA сейчас использую для написания ВКР - для чего-то серьёзного мне не надо, и много денег выкладывать не хочу, потому покупка Tesla не рассматривается.

PCI-E разъём на материнке, кажется, только один - поэтому если новую карту куплю, старую придётся продать... две использовать не получится.

Что не устраивает: не устраивает compute capabilty версии 1.1. Выхлоп deviceQuery:

Device 0: "GeForce 9800 GT"
  CUDA Driver Version / Runtime Version          4.2 / 4.2
  CUDA Capability Major/Minor version number:    1.1
  Total amount of global memory:                 512 MBytes (536543232 bytes)
  (14) Multiprocessors x (  8) CUDA Cores/MP:    112 CUDA Cores
  GPU Clock rate:                                1500 MHz (1.50 GHz)
  Memory Clock rate:                             900 Mhz
  Memory Bus Width:                              256-bit
  Max Texture Dimension Size (x,y,z)             1D=(8192), 2D=(65536,32768), 3D=(2048,2048,2048)
  Max Layered Texture Size (dim) x layers        1D=(8192) x 512, 2D=(8192,8192) x 512
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       16384 bytes
  Total number of registers available per block: 8192
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  768
  Maximum number of threads per block:           512
  Maximum sizes of each dimension of a block:    512 x 512 x 64
  Maximum sizes of each dimension of a grid:     65535 x 65535 x 1
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             256 bytes
  Concurrent copy and execution:                 Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Concurrent kernel execution:                   No
  Alignment requirement for Surfaces:            Yes
  Device has ECC support enabled:                No
  Device is using TCC driver mode:               No
  Device supports Unified Addressing (UVA):      No
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

Если точнее, что в первую очередь не устраивает - двойная точность (её нет). Ещё нет атомарных операций, но не знаю, насколько они мне нужны... Ещё нет трёхмерной сетки (только двухмерная), может в будущем может пригодиться.

Поэтому задумываюсь о покупке новой (не топовой, не самой дорогой), но чтобы поддерживала compute capabilty поновее (самый новый сейчас вроде 3.0, чуть постарше 2.1). Думаю, 2.1 мне в принципе должно хватить... 3.0 все дорогущие.

Главное условие, чтобы она вдруг не была слабее по производительности GeForce 9800GT (а вдруг, если бюджетная какая), и чтобы с дровами под линукс (проприетарными, так как CUDA) не было проблем. На 9800 проблемы есть. :( в игрушки тоже порой бывает захочется поиграть :) отдохнуть от забот и от всего.

Смотрю сюда - http://developer.nvidia.com/cuda-gpus и вижу чипы, которые поддерживают то, что мне надо...

Вот нашёл для примера:

GT 630 http://www.voronezh.ret.ru/tov_inf.jsp?gid=837961&name=Videokarta_PCI-E_G...

GT 620 http://www.voronezh.ret.ru/tov_inf.jsp?gid=837957&name=Videokarta_PCI-E_G...

GT 610 http://www.voronezh.ret.ru/tov_inf.jsp?gid=837962&name=Videokarta_PCI-E_G...

GT 520 (целый список на этом чипе) http://www.voronezh.ret.ru/index.jsp?loc=ajax&gid=22670&cls=775560

GT 440 http://www.voronezh.ret.ru/index.jsp?loc=ajax&gid=22670&cls=761593

GT 430 http://www.voronezh.ret.ru/index.jsp?loc=ajax&gid=22670&cls=743206

Какую из них лучше брать? Оно понятно, что, как правило, чем дороже, тем быстрее+надёжнее (примерно, хоть и не всегда), но мне супер-производительность не нужна, но нужно, чтобы хотя бы не уступала GeForce 9800GT

P.S. ATI/Intel не предлагать, ищу именно для CUDA, и может, в перспективе для OpenCL. Ati Stream или что там есть изучать желания нет, да и на CUDA почуть всё-таки уже писал, опыт какой-никакой.

Ответ на: комментарий от max_udoff

Они дороже :)

В 630 и 620 смущает то, что там 128 битная или 64 битная... а на 9800 GT - 256 бит... это сильно скажется на производительности?

Я тут подумал, и решил, что не страшно, даже если уступит по производительности, главное чтобы она была приемлемой для разрешения 1280x1024...

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

толсто.

я просто не хочу выкидывать кучу денег на железку, которая всё равно потом когда-то станет ненужной... вот за сколько я сейчас вою 9800 gt продам? а за сколько я её (в своё время) покупал?

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

Чувствую, что явно поменьше вашего, раз вы такой толстый - кормитесь хорошо :)

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

http://market.yandex.ru/model.xml?modelid=8232487&hid=91031&show-uid=...

Я так понял, дешевле этого вы мне ничего не предложите :) там даже с 4-мя мониторами можно работать, вау - круто. только зачем мне, если он у меня один?

BattleCoder ★★★★★
() автор топика

GTS450

 fads@phenom ~ $ /opt/cuda/sdk/C/bin/linux/release/deviceQuery
[deviceQuery] starting...

/opt/cuda/sdk/C/bin/linux/release/deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Found 1 CUDA Capable device(s)

Device 0: "GeForce GTS 450"
  CUDA Driver Version / Runtime Version          4.2 / 4.1
  CUDA Capability Major/Minor version number:    2.1
  Total amount of global memory:                 2047 MBytes (2146631680 bytes)
  ( 3) Multiprocessors x (48) CUDA Cores/MP:     144 CUDA Cores
  GPU Clock Speed:                               1.57 GHz
  Memory Clock rate:                             500.00 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 262144 bytes
  Max Texture Dimension Size (x,y,z)             1D=(65536), 2D=(65536,65535), 3D=(2048,2048,2048)
  Max Layered Texture Size (dim) x layers        1D=(16384) x 2048, 2D=(16384,16384) x 2048
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 32768
  Warp size:                                     32
  Maximum number of threads per block:           1024
  Maximum sizes of each dimension of a block:    1024 x 1024 x 64
  Maximum sizes of each dimension of a grid:     65535 x 65535 x 65535
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and execution:                 Yes with 1 copy engine(s)
  Run time limit on kernels:                     No
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Concurrent kernel execution:                   Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support enabled:                No
  Device is using TCC driver mode:               No
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 4.2, CUDA Runtime Version = 4.1, NumDevs = 1, Device = GeForce GTS 450
[deviceQuery] test results...
PASSED

Довольно недорого (~4000 руб) + Compute Capability 2.1 (атомарные операции, одновременное исполнение ядер) + можно подобрать практически бесшумную в простое

fads ★★
()

Что посоветовать не знаю. Могу немного открыть глаза на нужность новых фич.

Атомарные целочисленные функции однозначно нужны, хоть их лучше и не использовать без крайней нужды. Они есть в 2.1. Зачем нужно «Floating-point atomic addition» я что-то придумать не могу. Без «3D grid on thread block» жить точно можно, это скорее вопрос эстетики, а не возможностей, всегда можно сделать либо цикл внутри треда, либо отобразить 3D индексы в 2D. Новые продвинутые функции синхронизации может и нужны, но в моих не самых примитивных алгоритмах стандартных возможностей синхронизации вполне хватало.

Так что Compute Compatibility 2.1 вполне ещё торт, имхо.

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

1.1 вполне не торт, это могу точно сказать :) уж чего-чего, а double бы мне не помешал, для большей точности. а его нет.

BattleCoder ★★★★★
() автор топика
Ответ на: GTS450 от fads

А для чего так много памяти, аж 2 гига? думаю, мне и 512 метров хватит, на крайняк гигабайта...

хотя это сейчас у меня такая задача (в cuda), которую память почти не потребляет, а в будущем может и будет потреблять.

для игрушек речи не идёт, там точно 512 за глаза на моём разрешении экрана :) второй моник пока не планирую, а там видно будет

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

можно и удвоить, не вопрос... подсказываете конкретную модель, и чем она лучше остальных?

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

разве для thrust нужно много памяти?

128 битная шина - этого достаточно? почувствую ли я, что она меньше 256, будет ли упадок в производительности?

(речь как об fps в игрушках, так и о самой производительности cuda-программ, она ведь тоже может упасть, да?)

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

http://www.voronezh.ret.ru/index.jsp?loc=ajax&gid=22670&cls=756653 не, это слишком дороговато... 9800 я покупал, когда она была дешевле :)

хотя покупать планирую или в конце лета, или в начале осени, и если будут деньги... так что бюджет точно ещё не распланировал. только убедился на 100%, что текущей хватать не будет, и надо присматривать поновее.

мож и подешевеет...

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

В принципе посмотрел на gts450 - вроде норм... и по цене может устроит, жлобиться уж совсем не буду..

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

Осталось меня убедить в том, что 2 гига памяти мне действительно нужно :)

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

128 битная шина - этого достаточно?

Вполне, если речь о CUDA. В игрушечки с покупки нового ноута не играл.

У меня GT 540M, thrust со всеми редукциями, сортировками и преобразованиями работает нормально.

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

В thrust можно заводить vector, tuple на device - от этого наверняка есть какой-то overhead по памяти.

Пропускная способность:

fads@phenom ~ $ /opt/cuda/sdk/C/bin/linux/release/bandwidthTest 
[bandwidthTest] starting...

/opt/cuda/sdk/C/bin/linux/release/bandwidthTest Starting...

Running on...

 Device 0: GeForce GTS 450
 Quick Mode

 Host to Device Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			3183.7

 Device to Host Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			2384.2

 Device to Device Bandwidth, 1 Device(s)
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			14241.5

[bandwidthTest] test results...
PASSED

bandwidthTest --mode=shmoo: http://ompldr.org/vZTJpNQ

fads ★★
()
Ответ на: комментарий от fads
 Device 0: GeForce 9800 GT
 Quick Mode

 Host to Device Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     3129.1

 Device to Host Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     2439.1

 Device to Device Bandwidth, 1 Device(s)
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     47654.8
BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от fads

хотя не... --mode=shmoo уже не сливает... там поменьше будет... странно.

но скорость копирования device2device всё равно уступает аж на порядок. странно

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

vector - просто обёртка на c-style array. Там точно никакого оверхеда по памяти нет. С tuple не работал, не знаю, но полагаю что это нечто вроде std::pair, и оверхед там если и есть, то только на выравнивание.

dmfd
()

Это всё хлам, брать gts450, если немного подороже 550ti. Сейчас чип у них один и тот же, отличаются шиной памяти, количеством блоков и частотой.

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

4.2
Читаю комменты о карточке за 180000рэ. и падаю под стол:

«Вышло дорого, пришлось продать машину Audi A4, немножко занять но я безумно счастлив ведь теперь у меня все летает, берите обязательно».

http://market.yandex.ru/model-opinions.xml?modelid=6940380&hid=91031

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

double нужен, если системы зело нелинейные и неустойчивые, в гидродинамике, например. А так, что унитарность в квантовой механике, что энергия в молекулярной динамике у меня и на float прекрасно сохранялись.

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

где-то на яндекс-маркете видел похожие комменты про телевизор громадного размера (и похожей цены) :)

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

этот повеселее :)

Комментарий: Добротная, бюджетная модель для полу-профессиональной работы в графическом редакторе "Paint".
очень радует цена за такую энергопотребляемую станцию (нормально работает, кстати, при прямом подключении к ГЭС, АЭС и беговой дорожке), поэтому купил для всей семьи и собаки.
Есть модуль подключения к телефонам, так что теперь с моим Сименсом А50 можно покорять трубы Марио.
BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

128 битная шина - этого достаточно? почувствую ли я, что она меньше 256, будет ли упадок в производительности?

Зависит от частоты памяти.

max_udoff
()

весь твой выбор это фигня начального уровня или младший миддл. если тебе реально нужна cuda для не поиграться, то бери 560Ti или выше, лоуэнд 6хх серии фуфло переименованное

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

Лучше дождаться выхода в продажу карт на архитектуре нового поколения Kepler.
http://www.nvidia.ru/object/nvidia-geforce-gpu-kepler-architecture-20120322-ru.h...

Уже вышли GTX 680/690 но ТСу пока не по карману. Хотя я бы ориентировался на 690 с 4-мя Гб на борту, ибо именно памяти обычно и не хватает при вычислениях.

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

Полностью поддерживаю 560Ti с мощным твин охлаждением самый лучший выбор - цена - качество. Если еще лучше хочется, то ниже 680-690 брать не стоит.

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

Уже вышли GTX 680/690

GK104 чисто игровое решение, надо ждать GK110.

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