TL; Respuesta DR: las GPU tienen muchos más núcleos de procesador que las CPU, pero debido a que cada núcleo de GPU funciona significativamente más lento que un núcleo de CPU y no tienen las características necesarias para los sistemas operativos modernos, no son apropiados para realizar la mayor parte del procesamiento en el día a día informática. Son los más adecuados para operaciones de cómputo intensivo, como el procesamiento de video y las simulaciones físicas.
GPGPU sigue siendo un concepto relativamente nuevo. Las GPU se utilizaron inicialmente solo para representar gráficos; A medida que la tecnología avanzó, la gran cantidad de núcleos en las GPU en relación con las CPU se explotó mediante el desarrollo de capacidades computacionales para las GPU para que puedan procesar muchos flujos paralelos de datos simultáneamente, sin importar cuáles sean esos datos. Si bien las GPU pueden tener cientos o incluso miles de procesadores de flujo, cada uno funciona más lento que un núcleo de CPU y tienen menos características (incluso si están completas y se pueden programar para ejecutar cualquier programa que pueda ejecutar una CPU). Las características que faltan en las GPU incluyen interrupciones y memoria virtual, que son necesarias para implementar un sistema operativo moderno.
En otras palabras, las CPU y las GPU tienen arquitecturas significativamente diferentes que las hacen más adecuadas para diferentes tareas. Una GPU puede manejar grandes cantidades de datos en muchos flujos, realizando operaciones relativamente simples en ellos, pero no es adecuada para el procesamiento pesado o complejo en uno o pocos flujos de datos. Una CPU es mucho más rápida por núcleo (en términos de instrucciones por segundo) y puede realizar operaciones complejas en una sola o pocas secuencias de datos más fácilmente, pero no puede manejar eficientemente muchas secuencias simultáneamente.
Como resultado, las GPU no son adecuadas para manejar tareas que no se benefician significativamente o que no pueden ser paralelizadas, incluidas muchas aplicaciones de consumo comunes, como los procesadores de texto. Además, las GPU utilizan una arquitectura fundamentalmente diferente; uno tendría que programar una aplicación específicamente para una GPU para que funcione, y se requieren técnicas significativamente diferentes para programar las GPU. Estas diferentes técnicas incluyen nuevos lenguajes de programación, modificaciones a los lenguajes existentes y nuevos paradigmas de programación que son más adecuados para expresar una computación como una operación paralela que deben realizar muchos procesadores de flujo. Para obtener más información sobre las técnicas necesarias para programar las GPU, consulte los artículos de Wikipedia sobre procesamiento continuo y computación paralela .
Las GPU modernas son capaces de realizar operaciones vectoriales y aritmética de punto flotante, con las últimas tarjetas capaces de manipular números de punto flotante de doble precisión. Los marcos como CUDA y OpenCL permiten escribir programas para GPU, y la naturaleza de las GPU los hace más adecuados para operaciones altamente paralelizables, como en la informática científica, donde una serie de tarjetas de cómputo GPU especializadas pueden ser un reemplazo viable para un pequeño computar clúster como en NVIDIA Tesla Personal Supercomputers . Los consumidores con GPU modernas con experiencia en Folding @ home pueden usarlas para contribuir con los clientes de GPU , que pueden realizar simulaciones de plegamiento de proteínas a velocidades muy altas y aportar más trabajo al proyecto (asegúrese de leer las preguntas frecuentesprimero, especialmente los relacionados con las GPU). Las GPU también pueden permitir una mejor simulación física en los videojuegos usando PhysX, acelerar la codificación y decodificación de video, y realizar otras tareas de computación intensiva. Es este tipo de tareas que las GPU son las más adecuadas para realizar.
AMD es pionero en un diseño de procesador llamado Unidad de Procesamiento Acelerado (APU) que combina núcleos de CPU x86 convencionales con GPU. Este enfoque permite un rendimiento gráfico muy superior a las soluciones gráficas integradas en la placa base (aunque no es compatible con GPU discretas más costosas), y permite un sistema compacto y de bajo costo con un buen rendimiento multimedia sin la necesidad de una GPU separada. Los últimos procesadores Intel también ofrecen gráficos integrados en chip, aunque el rendimiento competitivo de la GPU integrada se limita actualmente a los pocos chips con Intel Iris Pro Graphics. A medida que la tecnología continúe avanzando, veremos un grado creciente de convergencia de estas partes que una vez estuvieron separadas. AMD imaginaUn futuro en el que la CPU y la GPU son uno, capaces de trabajar juntos sin problemas en la misma tarea .
No obstante, muchas de las tareas realizadas por los sistemas operativos y aplicaciones de PC aún se adaptan mejor a las CPU, y se necesita mucho trabajo para acelerar un programa usando una GPU. Dado que gran parte del software existente utiliza la arquitectura x86, y debido a que las GPU requieren diferentes técnicas de programación y faltan varias características importantes necesarias para los sistemas operativos, una transición general de la CPU a la GPU para la informática diaria es muy difícil.