Saltar al contenido

¿Por qué no usar GPU como CPU?

Luego de buscar en diversos repositorios y sitios de internet finalmente dimos con la resolución que te mostramos ahora.

Las GPU actuales carecen de muchas de las instalaciones de una CPU moderna que generalmente se consideran importantes (cruciales, en realidad) para cosas como un sistema operativo.

Solo por ejemplo, un sistema operativo normalmente usaba memoria virtual y paginación para administrar procesos. La paginación permite que el sistema operativo proporcione a cada proceso su propio espacio de direcciones, (casi) completamente aislado de cualquier otro proceso. Al menos según la información disponible públicamente, la mayoría de las GPU no admiten la paginación en absoluto (o al menos no en la forma en que lo necesita un sistema operativo).

Las GPU también funcionan a velocidades de reloj mucho más bajas que las CPU. Por lo tanto, ellos solo proporcionar un alto rendimiento para problemas vergonzosamente paralelos. Las CPU generalmente proporcionan un rendimiento mucho mayor para el código de un solo subproceso. La mayor parte del código en un sistema operativo no es muy paralelo; de hecho, gran parte es bastante difícil de hacer paralelo (por ejemplo, durante años, Linux tenía un bloqueo gigante para garantizar que solo un subproceso ejecutara la mayoría del código del kernel en en cualquier momento). Para este tipo de tarea, es poco probable que una GPU brinde algún beneficio.

Desde el punto de vista de la programación, una GPU es un mixed bendición (en el mejor de los casos). La gente ha pasado años trabajando en modelos de programación para hacer que la programación de una GPU sea casi sensata y, aun así, es mucho más difícil (en general) que la programación de una CPU. Dada la dificultad de hacer que incluso cosas relativamente triviales funcionen bien en una GPU, no puedo imaginar intentar escribir algo tan grande y complejo como un sistema operativo para ejecutarlo.

Las GPU están diseñadas para el procesamiento relacionado con gráficos (obviamente), que es inherentemente algo que se beneficia del procesamiento paralelo (realizar múltiples tareas/cálculos a la vez). Esto significa que, a diferencia de las CPU modernas, que, como probablemente sepa, suelen tener de 2 a 8 núcleos, las GPU tienen cientos de núcleos. Esto significa que son especialmente adecuados para procesar cosas como el trazado de rayos o cualquier otra cosa que pueda encontrar en un juego 3D u otra actividad intensiva en gráficos.

Las CPU, por otro lado, tienen una cantidad relativamente limitada de núcleos porque las tareas a las que se enfrenta una CPU generalmente no se benefician del procesamiento paralelo tanto como lo haría la representación de una escena 3D. De hecho, tener demasiados núcleos en una CPU podría degradar el rendimiento de una máquina, debido a la naturaleza de las tareas que normalmente realiza una CPU y al hecho de que muchos programas no se escribirían para aprovechar la multitud de núcleos. . Esto significa que para la navegación por Internet o la mayoría de las otras tareas de escritorio, una CPU con unos pocos núcleos potentes sería más adecuada para el trabajo que una GPU con muchos, muchos núcleos más pequeños.

Otra cosa a tener en cuenta es que más núcleos generalmente significan que se necesita más energía. Esto significa que un teléfono o una computadora portátil de 256 núcleos sería bastante poco práctico desde el punto de vista de la energía y el calor, sin mencionar los desafíos y los costos de fabricación.

Por lo general, los sistemas operativos son bastante simples, si nos fijamos en su estructura. Pero paralelizarlos no mejorará mucho las velocidades, solo servirá la velocidad de reloj sin procesar.

Las GPU simplemente carecen de partes y muchas instrucciones de sus conjuntos de instrucciones que necesita un sistema operativo, es una cuestión de sofisticación. Solo piense en las funciones de virtualización (Intel VT-x o AMD-v de AMD).

Los núcleos de GPU son como hormigas tontas, mientras que una CPU es como un humano complejo, por así decirlo. Ambos tienen un consumo de energía diferente debido a esto y producen cantidades de calor muy diferentes.

Vea esta extensa respuesta de superusuario aquí para obtener más información.

Comentarios y valoraciones

Si tienes algún reparo y forma de afinar nuestro división eres capaz de añadir una explicación y con deseo lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *