Как я могу оценить вычислительную мощность GPU относительно ЦП?

Предположим, что у меня есть программа, которая делает много вычислений с плавающей точкой и является непрактично медленной на моих текущих аппаратных средствах. Для сокращения времени выполнения как можно больше я хочу выяснить, лучше ли вложить капитал в центральные процессоры или GPU, учитывая фиксированный бюджет (приблизительно $3000-4000 в моем случае). Я знаю, что для сравнения одного ЦП с другим я могу получить очень грубый смысл относительных скоростей обработки путем умножения тактовой частоты на количество ядер для каждого ЦП и сравнения тех чисел. Но что относительно GPU? Там некоторый путь состоит в том, чтобы быстро вычислить число на основе спецификаций GPU, который скажет мне примерно, как быстро я могу ожидать, что это запустит мою программу относительно известного ЦП?

Я знаю, что фактическая скорость обработки будет зависеть в большой степени от способа, которым программа создается и от других факторов помимо тактовых частот ЦП/GPU. В целях этого вопроса я игнорирую те другие факторы, т.е. я предполагаю, что время, потраченное для любой задачи кроме числа с плавающей запятой, уплотняющего, незначительно (таким образом, это не связанный ввод-вывод или ничто как этот), и что программа бесконечно parallelizable (так, учитывая любое количество ЦП или ядер GPU, все они привыкнут к максимальной способности пока прогоны программы).

2
задан 03.02.2011, 21:02

1 ответ

Ну, Вы могли попробовать синтетическими сравнительными тестами. Они дадут Вам некоторое представление. Инструментарий NVIDIA'a CUDA, например, содержит некоторые программы, которые запущены и на ЦП и на GPU, и он может использоваться для сравнения, сколько времени он берет для выполнения их на каждой платформе.

Если необходимо сделать это только использование таблиц данных GPU, можно сделать это также. Например, вот страница для моего GeForce 9500 GS. Можно найти информацию о количестве обработки ядер там. Обработка возможности пропорциональна частоте GPU и базовому числу. Некоторые карты даже имеют число гигафлопс также. Был документ с подробными описаниями большего количества универсальной формы, доступными для каждой карты, но я не могу найти способ добраться до него прямо сейчас. Возможно, это находится в загрузках инструментария CUDA?

Существует также вычислить уровень способности, который показывает, какие функции каждая карта обеспечивает, но если я помню correclty, это не оказывает прямое влияние на скорость вычисления, только на точность и систему команд, которая может использоваться.

Я не актуален с информацией о картах от других производителей, но я ожидаю, что существуют способы получить данные, по крайней мере, для AMD и Intel также.

2
ответ дан 09.01.2020, 03:21

Теги

Похожие вопросы