2016-02-29 4 views
0

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

+0

Вы также можете использовать многопоточные программы для ЦП. Ответ требует подробного объяснения архитектуры, чтобы полностью объяснить, почему некоторые параллельные операции на графических процессорах значительно быстрее, чем процессоры. Я не совсем уверен, что цель/деталь требует этого вопроса? – yw3410

+0

Итак, вы говорите точную базовую программу выше (она загружает все эти уравнения и запускает их. Готово.) Есть еще другие факторы, которые необходимо рассмотреть, прежде чем определять, будет ли компьютер или компьютер быстрее работать на компьютере? Что еще вам нужно знать? – user3134006

ответ

0

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

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

Например, для рендеринга каждого пикселя на экране требуется вычисление, и GPU будет пытаться выполнять как можно больше из этих вычислений одновременно. Чем мощнее GPU, тем больше он может справиться сразу и ускорить его тактовую частоту. Конечным результатом является то, что графический процессор более высокого класса может запускать вашу ОС и игры с разрешением 4k, тогда как другие карты (или интегрированные графические элементы) могут обрабатывать только 1080p или меньше.

Есть еще много чего, но я решил, что вы не ищете безумно техническое объяснение.

Суть в том, что для выполнения одной задачи на одной части данных процессор будет работать быстрее. Один процессорный ядро, как правило, намного быстрее, чем одно ядро ​​GPU. Тем не менее, они, как правило, имеют много ядер и для выполнения одной задачи на многих фрагментах данных (так что вам нужно запускать их один раз для каждого), обычно GPU будет быстрее. Но это ситуации, зависящие от данных, и поэтому каждая ситуация должна оцениваться на индивидуальной основе, чтобы определить, что использовать и как ее использовать.

+0

Итак, я читаю ваш ответ, поскольку, учитывая пример примера примера, который я дал (он загружает все эти миллиарды отдельных уравнений и должен их запускать. Готово.) Да, если вы не сделали что-то действительно не так, или худший GPU когда-либо, вы должны иметь возможность запускать эту конкретную задачу на тонну быстрее на графическом процессоре, а затем на CPU. Ya? – user3134006

+0

Ну, вы не дали точного примера. Вы сказали, что у вас есть 10 000 массивов уравнений (что это значит? Я не знаком ни с каким классом или структурой, которая буквально является уравнением.) Вы также сказали, что есть миллиарды каждого уравнения. Вы имели в виду сказать, что у вас есть 10 000 массивов с миллиардами номеров внутри, и вы хотите выполнить один и тот же расчет на всех из них? Полагаю, мой вопрос в том, что вам нужно быть более конкретным в отношении вашего варианта использования. Каковы данные, какие данные выводятся и какова операция, выполняемая над данными. Следовательно, управляемый данными. –

+0

Чтобы уточнить это. Если у вас было 100 000 массивов, каждый из которых содержал 100 000 целых чисел, и вам нужно было взять каждый набор из 2 массивов и добавить каждый из их членов вместе, чтобы [1, 2, 3, 4] + [2, 3, 4, 5 ] = [3, 5, 7, 9], GPU мог бы выполнять эту задачу намного быстрее. –