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