2

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

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

1 ответ1

2

Ну, вы можете попробовать с синтетическими тестами. Они дадут вам некоторую идею. Например, инструментарий NVIDIA'A CUDA содержит несколько программ, которые выполняются как на CPU, так и на GPU, и его можно использовать для сравнения того, сколько времени требуется для их выполнения на каждой платформе.

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .