2008-08-26 15 views
13

¿Cuál cree 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?¿Factibilidad de la GPU como CPU?

Respuesta

5

Primero, no creo que esto suceda. realmente pertenece en SO.

En mi opinión, la GPU es una alternativa muy interesante cada vez que se realizan cálculos float basados ​​en vectores. Sin embargo, esto se traduce en: No se convertirá en la corriente principal. La mayoría de las aplicaciones convencionales (de escritorio) hacen muy pocos cálculos de coma flotante.

Ya ha ganado tracción en los juegos (motores de física) y en los cálculos científicos. Si considera cualquiera de esos dos como "mainstream", entonces sí, la GPU se convertirá en mainstream.

No consideraría estos dos como la corriente principal y, por lo tanto, creo que la GPU se convertirá en la próxima moda adoptada en la industria convencional.

Si usted, como estudiante, tiene interés en los cálculos científicos basados ​​en la física, debe dedicarle un tiempo (las GPU son piezas de hardware muy interesantes de todos modos).

+1

Opinión, pero no hubo respuesta ... – leppie

+1

Teniendo en cuenta que los superordenadores se construyen con el único propósito de realizar cálculos científicos, y los videojuegos lideran el desarrollo de aplicaciones intensivas de gráficos, inteligencia artificial y física (especialmente todas a la vez). No sé cómo podría considerarlas como no principales. Pero estoy de acuerdo, la GPU nunca reemplazará la CPU. Las GPU simplemente no tienen flexibilidad. – Narcolapser

+0

Interesante para ver esta pregunta de unos años más tarde. Creo que la GPU definitivamente se ha vuelto más convencional en este punto, aunque es improbable reemplazar la CPU. Siguen agregando más y más núcleos de todos modos =) Y sí, probablemente sea mejor vivir en [Programadores] (http://programmers.stackexchange.com/) que SO. –

2

Creo que es el camino correcto a seguir.

Teniendo en cuenta que GPUs have been tapped to create cheap supercomputers, parece ser la evolución natural de las cosas. Con tanta potencia informática y R & D ya hecho para usted, ¿por qué no explotar la tecnología disponible?

Así que adelante y hazlo. Será una buena investigación, así como una razón legítima para comprar esa tarjeta gráfica de alta gama para poder jugar a Crysis y Assassin's Creed con detalles gráficos completos;)

1

Con tanta potencia sin explotar, no veo cómo no se utilizará durante demasiado tiempo. La pregunta es, sin embargo, cómo se usará la GPU para esto. CUDA parece ser una buena suposición por el momento, pero otras tecnologías están surgiendo en el horizonte, lo que podría hacer que sea más accesible para el desarrollador promedio.

Apple ha anunciado recientemente OpenCL que afirman que es mucho más que CUDA, pero bastante simple. No estoy seguro de qué hacer exactamente con eso, pero el grupo khronos (los chicos que trabajan en el estándar OpenGL) están trabajando en el estándar OpenCL, y está tratando de hacerlo altamente interoperable con OpenGL. Esto podría conducir a una tecnología que es más adecuada para el desarrollo normal de software.

Es un tema interesante y, por cierto, estoy por comenzar mi tesis de maestría sobre el tema de cómo hacer que la potencia de la GPU esté disponible para los desarrolladores promedio (si es posible) con CUDA como foco principal.

+0

¿Has visto GPU ++? Proviene de una tesis similar a la que estás por comenzar. Podría darte un buen comienzo. – gbjbaanb

+0

Gracias, parece ser una lectura interesante. –

2

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

sombreadores de píxeles para aplicar rutinas a grandes conjuntos de valores flotantes, 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.

6

A largo plazo, creo que la GPU dejará de existir, ya que los procesadores de propósito general evolucionan para hacerse cargo de esas funciones. Intel's Larrabee es el primer paso. La historia ha demostrado que apostar contra x86 es una mala idea.

El estudio de las arquitecturas masivamente paralelas y el procesamiento de vectores seguirá siendo útil.

+0

Gracias por la respuesta, me hizo pensar diferente sobre el tema. –

18

Commitir el 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 capacidad para trabajar bien en una amplia variedad de tareas de todo el trabajo que ha entrado en predicción de ramas, canalización, superpenetrador, etc. Esto les permite lograr un buen rendimiento en una amplia variedad de cargas de trabajo, a la vez que las hace suck en operaciones de coma flotante intensivas en 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 texturas programables y 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 en primer lugar.

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

+0

+1 "Después de todo," se ve bonito "es un estándar mucho más bajo que" resultados 100% garantizados y reproducibles, todo el tiempo "." ¡Está perfectamente dicho! – Blindy

+0

+1 para una buena explicación –

+0

+1 "Siempre será importante que siempre coincida con el problema que tenga con la herramienta más adecuada que tiene para resolverlo" – Adam

5

Las GPU nunca suplantarán 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 coma flotante de GPU, así como cálculos de CPU estándar.

+0

¡Gracias! ¿Estoy leyendo correctamente que la especialidad de una CPU es la serialización de instrucciones mientras que la especialidad de una GPU es paralela? ¿Puedes dar un ejemplo del mundo real? ¡Muchas gracias de antemano! –

1

Hace mucho tiempo, era realmente difícil hacer cálculos de coma 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 necesitan un rendimiento en coma flotante pueden 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 tarde se integraron, con el 80486 teniendo una FPU incorporada.

La FPU antigua 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.

Por lo tanto, creo que la respuesta real a su pregunta es, GPU no se convertirá en CPUs, en vez tendrá una GPU integrada en la CPU de.