Ответ TL; DR: у графических процессоров гораздо больше процессорных ядер, чем у процессоров, но поскольку каждое ядро графического процессора работает значительно медленнее, чем ядро процессора, и не обладает функциями, необходимыми для современных операционных систем, они не подходят для выполнения большей части обработки в повседневной жизни. вычисления. Они больше всего подходят для вычислительных операций, таких как обработка видео и физическое моделирование.
GPGPU - все еще относительно новая концепция. Графические процессоры изначально использовались только для визуализации графики; По мере развития технологии большое количество ядер в графических процессорах по сравнению с процессорами использовалось для разработки вычислительных возможностей для графических процессоров, чтобы они могли обрабатывать множество параллельных потоков данных одновременно, независимо от того, какими могут быть эти данные. Хотя графические процессоры могут иметь сотни или даже тысячи потоковых процессоров, каждый из них работает медленнее, чем ядро процессора, и обладает меньшим количеством функций (даже если они завершены по Тьюрингу и могут быть запрограммированы для запуска любой программы, которую может запустить процессор). Функции, отсутствующие в графических процессорах, включают прерывания и виртуальную память, которые необходимы для реализации современной операционной системы.
Другими словами, процессоры и графические процессоры имеют существенно различную архитектуру, что делает их более подходящими для различных задач. Графический процессор может обрабатывать большие объемы данных во многих потоках, выполняя с ними относительно простые операции, но он плохо подходит для интенсивной или сложной обработки одного или нескольких потоков данных. Процессор намного быстрее для каждого ядра (с точки зрения количества команд в секунду) и может легче выполнять сложные операции с одним или несколькими потоками данных, но не может эффективно обрабатывать много потоков одновременно.
В результате, графические процессоры не подходят для выполнения задач, которые не приносят существенной выгоды или не могут быть распараллелены, включая многие распространенные потребительские приложения, такие как текстовые процессоры. Кроме того, графические процессоры используют принципиально другую архитектуру; для его работы нужно было бы запрограммировать приложение специально для графического процессора, и для программирования графических процессоров требуются существенно разные методы. Эти различные методы включают новые языки программирования, модификации существующих языков и новые парадигмы программирования, которые лучше подходят для выражения вычислений в виде параллельной операции, выполняемой многими потоковыми процессорами. Для получения дополнительной информации о методах, необходимых для программирования графических процессоров, см. Статьи Википедии о потоковой обработке и параллельных вычислениях .
Современные графические процессоры способны выполнять векторные операции и арифметику с плавающей запятой, а новейшие карты способны манипулировать числами с плавающей запятой двойной точности. Фреймворки, такие как CUDA и OpenCL, позволяют писать программы для графических процессоров, а природа графических процессоров делает их наиболее подходящими для высокопараллелизируемых операций, например, в научных вычислениях, где серия специализированных вычислительных карт на графических процессорах может быть жизнеспособной заменой для небольших вычислительный кластер, как в NVIDIA Tesla Personal Supercomputers . Потребители с современными графическими процессорами, которые имеют опыт работы с Folding @ home, могут использовать их для взаимодействия с клиентами графических процессоров , которые могут выполнять моделирование свертывания белка на очень высокой скорости и вносить больше работы в проект (обязательно прочитайте часто задаваемые вопросыво-первых, особенно те, которые связаны с графическими процессорами). Графические процессоры также могут обеспечить лучшее физическое моделирование в видеоиграх с использованием PhysX, ускорить кодирование и декодирование видео и выполнять другие задачи, требующие больших вычислительных ресурсов. Именно эти типы задач наиболее подходят для выполнения графических процессоров.
AMD является пионером в разработке процессоров, называемых ускоренным процессором (APU), который сочетает в себе обычные процессорные ядра x86 с графическими процессорами. Этот подход обеспечивает графическую производительность, значительно превосходящую встроенные в материнскую плату графические решения (хотя и не подходит для более дорогих дискретных графических процессоров), и позволяет создать компактную недорогую систему с хорошей производительностью мультимедиа без необходимости использования отдельного графического процессора. Новейшие процессоры Intel также предлагают встроенную встроенную графику, хотя конкурентоспособная производительность интегрированных графических процессоров в настоящее время ограничена несколькими чипами с Intel Iris Pro Graphics. Поскольку технология продолжает развиваться, мы увидим растущую степень сближения этих некогда отдельных частей. AMD предусматриваетбудущее, в котором процессор и графический процессор - одно целое, способное беспрепятственно работать вместе над одной и той же задачей .
Тем не менее, многие задачи, выполняемые операционными системами и приложениями ПК, все еще лучше подходят для процессоров, и для ускорения программы с использованием графического процессора требуется много работы. Поскольку так много существующего программного обеспечения используют архитектуру x86, а поскольку для графических процессоров требуются различные методы программирования и отсутствуют некоторые важные функции, необходимые для операционных систем, общий переход с CPU на GPU для повседневных вычислений является очень трудным.