Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1113
Есть софт, который производит сложные расчеты с радиолокационными данными. На простом i7 расчеты идут по нескольку недель.

Про ускорение на GPU слышал лишь вскользь, однако вроде как оно может дать до 30 кратного прироста в скорости на некоторых задачах. В первом приближение подобные расчеты скорее всего хорошо бы легли на SIMD, однако уверенности нет.

Уверенности в том, что приложение само адекватно использует процессорные ядра нет. Система показывает 100% загрузку всех ядер, однако это что называется не показатель. Какую конфигурацию лучше подобрать при таких условиях задачи. Есть возможность закупить под это дело любое железо. Вопрос только в том - какое

Вопрос в том, можно ли как-то заставить софт, не рассчитанный на использование CUDA заставить использовать CUDA
Теги: CUDA  
Последнее изменение: Luca, 09.11.2012 13:58

Комментарии8

0 0

gaal
Новичок
Зарегистрирован: 22.10.2012
Сообщений: 292
По-видимому никак.

Либо еще OpenCL или DirectCompute (only Windows - DirectX)
-- Кактус, который семь лет простоял возле монитора компьютера, умеет самостоятельно переустанавливать Windows

0 0

Тайный Хранитель
Пользователь
Зарегистрирован: 11.10.2012
Сообщений: 33
Приложение должно быть написано для видеокарты, само собой софт не станет использовать то, что не может. А написать приложения для такого многопоточного процессора как видеокарта нелегко, около 2048 ядер может содержать такой чип. Притом нужно опять же писать на языках подходящих для видеочипов - CUDA, OpenCL, DirectCompute. С++ AMP. Если не наймёшь программистов, которые перепишут, то ничего не будет.

0 0

Директор Мира
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 176
Вопрос в том, можно ли как-то заставить софт, не рассчитанный на использование CUDA заставить использовать CUDA
Правильный ответ - никак. Софт нужно переписывать.
Курить здесь.
Ещё есть аналогичная фишка от AMD, ессно, не совместимая с CUDA. Её нужно курить отдельно.

0 0

Директор Мира
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 176
P.S. Насчёт железа, тут нужно смотреть, i7 - не показатель. Пробуй AMD, там есть восьмиядерники, может задача умеет хорошо параллелиться.

0 0

Luca
Модератор
Зарегистрирован: 05.10.2012
Сообщений: 1113
Ну так просто AMD попробовать не получится т.к. его вначале закупить нужно...

Что на счет топового серверного железа Можно ли на нем получить значительный прирост
-- тишина - самый громкий звук

0 0

Директор Мира
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 176
Что на счет топового серверного железа Можно ли на нем получить значительный прирост
Согласно этой таблице
, в числодробилках без GPU рулят Xeon'ы. Настольных AMD нет, но есть i7. Но это не истина в последней инстанции, потому как по игровым тестам Intel может опережать AMD в одних играх, и наоборот в других. Если же в средствах стеснения нет, то с вероятностью 95% Xeon будет быстрей.
Почему не 100% Потому что процессоры имеют внутреннюю структуру, которая непрерывно оптимизируется, т.н. ревизии. Т.е. процессор той же модели спустя год будет немножко быстрей. И есть некоторая вероятность, что твоя задача будет использовать те блоки Xeon'а, которые внезапно хуже оптимизированы, чем у настольного AMD Buldozer.
Именно поэтому для сравнения процессоров используется несколько разных приложений, выигрыш в одном приложении не всегда означает выигрыш в другом.

0 0

Директор Мира
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 176
Luca, если есть толковые программеры, то общий путь решения задачи лежит в максимальном распараллеливании вычислений. CUDA как раз хорошо считают именно распараллеливаемые задачи.
Кроме того, Intel Xeon E5640 стоит примерно 22 тыр. За эти деньги можно взять 5-6 бюджетных AMD Phenom II, которые в сумме легко уделают Ксеон, особенно разогнанные.
Это если задача распараллеливается.

0 0

Директор Мира
Золотой пользователь
Зарегистрирован: 06.10.2012
Сообщений: 176
Уверенности в том, что приложение само адекватно использует процессорные ядра нет. Система показывает 100% загрузку всех ядер, однако это что называется не показатель.
Померяй температуру процессора. Хорошо оптимизированное приложение хорошо греет процессор, плохо оптимизированное - плохо греет. Это связано с количеством одновременно задействованных блоков процессора
Тест Linpack - пример хорошо оптимизированного приложения.