Прямой ответ: Я бы выбрал один или два GTX 480.Но я думаю, что мои рассуждения немного отличаются от @bobince или @ pszilard.
Backgroud: Я только что принял то же решение, с которым вы сталкиваетесь, но наши ситуации могут быть совершенно другими.
Я аспирант по статистике в отделе с минимальным финансированием вычислительных ресурсов GPU, в кампусе есть один блок fermi, подключенный к двум узлам, к которым у меня есть доступ.Но они были в linux, что мне очень нравится, но я действительно хочу использовать nSight для тестирования и настройки своего кода, поэтому мне нужны окна, поэтому я решил приобрести коробку для разработки с двойной загрузкой, Ubuntu x64 для рабочих запускови Win 7 с VS 2010 ( битва, в которой я сейчас сражаюсь ) и nSight 1.5 для разработки.Тем не менее, вернемся к причине, почему я купил два GTX 480 (EVGA - это круто !!), а не два GTX 285 или 295.
Последние два года я потратил на разработку пары ядер CUDA.Самой сложной частью разработки для меня является управление памятью.Большую часть трех месяцев я потратил на то, чтобы втиснуть декомпозицию Cholesky и обратную подстановку в 16 регистров одинарной точности - максимум, который вы можете использовать до того, как GTX 285 или 295 понесет 50% -ное снижение производительности (буквально 3 недели с 17до 16 регистров).Для меня тот факт, что все архитектуры Fermi имеют двойные регистры, означает, что эти три месяца принесли бы мне около 10% улучшения на GTX 480 вместо 50% на GTX 285 и, следовательно, вероятно, не стоили моего времени - на самом деленемного более тонким, чем это, но вы получаете дрейф.
Если вы довольно плохо знакомы с CUDA - что вы, вероятно, так как вы спрашиваете - я бы сказал, 32 регистра это ОГРОМНО.Во-вторых, я думаю, что кэш L1 архитектуры Fermi может напрямую преобразовать в более быстрый глобальный доступ к памяти - конечно, это так, но я пока не измерял влияние напрямую.Если вам не нужна большая глобальная память, вы можете обменять больший кэш L1 на тройную разделяемую память, что также стало для меня проблемой, так как размеры матрицы увеличились.
Тогда я бы согласилсяс @pszilard, что если вам нужна двойная точность, Fermi - определенно верный путь - хотя я все равно сначала напишу ваш код с одинарной точностью, настрою его, а затем перейду на удвоение.
Не знаюНе думаю, что параллельное выполнение ядра будет иметь для вас значение - это действительно здорово, задержки на завершение ядра могут быть на несколько порядков меньше - но вы, вероятно, сначала сосредоточитесь на одном ядре, а не на параллельных ядрах.Если вы хотите использовать потоковое или параллельное ядро, то вам нужен Fermi - 285/295 просто не могут этого сделать.
И, наконец, недостатком перехода на 295 является то, что вам нужно написать двауровни параллелизма: (1) один для распределения блоков (или ядер?) по картам и (2) само ядро gpu. Если вы только начинаете, гораздо проще сохранить параллелизм в одном месте (на одной карте), чем сражаться сразу в двух сражениях.
Ps.Если вы еще не написали свои ядра, вы можете подумать о том, чтобы получить только одну карту и подождать шесть месяцев, чтобы увидеть, изменится ли ландшафт снова - хотя я не знаю, когда будут выпущены следующие карты.
PPs.Мне очень понравилось работать с ядром cuda на GTX 480, которое я отлаживал / проектировал на Tesla C1070, и мгновенно достигать 2-кратного улучшения скорости.Деньги потрачены не зря.