[cuda] ¿Viabilidad de la GPU como CPU? [cerrado]


3 Answers

Dedique tiempo si le interesa la informática científica y paralela. No piense en CUDA y en hacer que una GPU aparezca como una CPU. Solo permite un método más directo de programación de GPU que las técnicas de programación GPGPU anteriores.

Las CPU de propósito general derivan su habilidad para trabajar bien en una amplia variedad de tareas de todo el trabajo que ha entrado en la predicción de bifurcación, canalización, superscaler, etc. Esto les permite lograr un buen rendimiento en una amplia variedad de cargas de trabajo, mientras que haciéndolos chupar en operaciones de punto flotante intensivo de memoria de alto rendimiento.

Las GPU fueron diseñadas originalmente para hacer una cosa, y hacerlo muy, muy bien. Las operaciones gráficas son intrínsecamente paralelas. Puede calcular el color de todos los píxeles en la pantalla al mismo tiempo, porque no hay dependencias de datos entre los resultados. Además, los algoritmos necesarios no tenían que ocuparse de las ramas, ya que casi cualquier rama que se requeriría se podía lograr estableciendo un coeficiente a cero o uno. El hardware podría ser muy simple. No es necesario preocuparse por la predicción de bifurcación, y en lugar de hacer un superpeso procesador, simplemente puede agregar tantas ALU como pueda en el chip.

Con la textura programable y los sombreadores de vértices, las GPU obtuvieron un camino hacia la programabilidad general, pero todavía están limitadas por el hardware, que todavía está diseñado para operaciones de punto flotante de alto rendimiento. Es probable que se agreguen algunos circuitos adicionales para permitir un cálculo más general, pero solo hasta cierto punto. Cualquier cosa que comprometa la capacidad de una GPU para hacer gráficos no lo hará. Después de todo, las compañías de GPU todavía están en el negocio de los gráficos y el mercado objetivo sigue siendo los jugadores y las personas que necesitan una visualización de alta gama.

El mercado GPGPU sigue siendo una gota en el cubo, y en cierta medida seguirá siéndolo. Después de todo, "se ve bonito" es un estándar mucho más bajo que cumplir que "resultados 100% garantizados y reproducibles, siempre".

En resumen, las GPU nunca serán factibles como CPU. Simplemente están diseñados para diferentes tipos de cargas de trabajo. Espero que las GPU ganen características que las hagan útiles para resolver rápidamente una variedad más amplia de problemas, pero siempre serán unidades de procesamiento de gráficos en primer lugar.

Siempre será importante siempre hacer coincidir el problema que tenga con la herramienta más adecuada que tenga para resolverlo.

Question

¿Cuál crees que es el futuro de GPU como iniciativas de CPU como CUDA? ¿Crees que van a convertirse en la corriente principal y ser la próxima moda adoptada en la industria? Apple está construyendo un nuevo marco para usar la GPU para hacer tareas de CPU y ha habido mucho éxito en el proyecto Nvidias CUDA en ciencias. ¿Sugeriría que un alumno dedique tiempo a este campo?




Es una de esas cosas para las que ves 1 o 2 aplicaciones, pero pronto alguien creará una 'aplicación asesina' que descubrirá cómo hacer algo más útil en general a velocidades superrápidas.

Pixel shaders para aplicar rutinas a grandes conjuntos de valores float, tal vez veremos algunas aplicaciones de cobertura SIG o bien, no sé. Si no le dedicas más tiempo del que tengo, tendrás el mismo nivel de conocimiento que yo, ¡es decir, poco!

Tengo la sensación de que podría ser algo muy importante, al igual que Intel y S3, tal vez solo necesite 1 pequeño ajuste para agregar al hardware, o alguien con una bombilla sobre su cabeza.




Las GPU nunca reemplazarán a las CPU. Una CPU ejecuta un conjunto de instrucciones secuenciales, y una GPU realiza un tipo de cálculo muy específico en paralelo. Estas GPU tienen una gran utilidad en computación numérica y gráficos; sin embargo, la mayoría de los programas no pueden de ninguna manera utilizar este sabor de la computación.

Pronto comenzará a ver nuevos procesadores de Intel y AMD que incluyen cálculos vectoriales de punto flotante de tipo GPU, así como cálculos de CPU estándar.




Hace mucho tiempo, era realmente difícil hacer cálculos de punto flotante (miles / millones de ciclos de emulación por instrucción en CPU de rendimiento terrible (según los estándares actuales) como el 80386). Las personas que necesitaban un rendimiento en coma flotante podían obtener una FPU (por ejemplo, la 80387. La antigua FPU estaba bastante integrada en la operación de la CPU, pero eran externas. Más adelante se integraron, y la 80486 tenía una FPU incorporada.

La antigua FPU es análoga a la computación GPU. Ya podemos obtenerlo con las APU de AMD. Una APU es una CPU con una GPU integrada.

Entonces, creo que la respuesta real a su pregunta es que las GPU no se convertirán en CPU, sino que las CPU tendrán una GPU integrada.




Related