Pregunta

¿Cuál crees que es el futuro de la GPU como iniciativas de CPU como CUDA?¿Crees que se generalizarán y serán la próxima moda pasajera en la industria?Apple está construyendo un nuevo marco para usar la GPU para realizar tareas de CPU y ha habido mucho éxito en el proyecto científico Nvidias CUDA.¿Sugerirías que un estudiante dedique tiempo a este campo?

¿Fue útil?

Solución

En primer lugar, no creo que estas preguntas realmente pertenezcan a SO.

En mi opinión, la GPU es una alternativa muy interesante cuando se realizan matemáticas flotantes basadas en vectores.Sin embargo, esto se traduce en:No se convertirá en algo común.La mayoría de las aplicaciones convencionales (de escritorio) realizan muy pocos cálculos en punto flotante.

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

No consideraría 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 principal.

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

Otros consejos

Dedique tiempo si está interesado en la computación científica y paralela.No piense en CUDA y en hacer que una GPU parezca una CPU.Solo permite un método más directo de programación de GPU que las técnicas de programación GPGPU más antiguas.

Las CPU de uso general obtienen su capacidad para funcionar bien en una amplia variedad de tareas de todo el trabajo realizado en predicción de ramas, canalización, superescalador, etc.Esto les permite lograr un buen rendimiento en una amplia variedad de cargas de trabajo, al mismo tiempo que les impide realizar operaciones de punto flotante con uso intensivo de memoria y de alto rendimiento.

Las GPU se diseñaron originalmente para hacer una cosa y la hacen muy, muy bien.Las operaciones gráficas son inherentemente paralelas.Puede calcular el color de todos los píxeles de la pantalla al mismo tiempo, porque no existen dependencias de datos entre los resultados.Además, los algoritmos necesarios no tenían que lidiar con ramas, ya que casi cualquier rama necesaria podría lograrse estableciendo un coeficiente en cero o uno.Por tanto, el hardware podría ser muy sencillo.No es necesario preocuparse por la predicción de ramificaciones y, en lugar de crear un superescalador de procesador, simplemente puede agregar tantas ALU como pueda meter en el chip.

Con texturas programables y sombreadores de vértices, las GPU ganaron 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.Probablemente se agregarán algunos circuitos adicionales para permitir un cálculo de propósito más general, pero sólo hasta cierto punto.Cualquier cosa que comprometa la capacidad de una GPU para generar gráficos no funcionará.Después de todo, las empresas de GPU todavía están en el negocio de los gráficos y el mercado objetivo siguen siendo los jugadores y las personas que necesitan una visualización de alta gama.

El mercado de GPGPU sigue siendo una gota en el océano y, hasta cierto punto, seguirá siéndolo.Después de todo, "se ve bonito" es un estándar mucho más bajo que "resultados 100% garantizados y reproducibles, en todo momento".

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 obtengan características que las hagan útiles para resolver rápidamente una variedad más amplia de problemas, pero siempre serán gráficos unidades de procesamiento ante todo.

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

A largo plazo creo que la GPU dejará de existir, a medida que los procesadores de propósito general evolucionen para asumir esas funciones. Larrabee de Intel es el primer paso.La historia ha demostrado que apostar contra x86 es una mala idea.

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

Las GPU nunca sustituirá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's tienen una gran utilidad en computación numérica y gráfica;sin embargo, la mayoría de los programas de ninguna manera pueden utilizar este tipo de informática.

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

Creo que es el camino correcto a seguir.

Teniendo en cuenta que Se han aprovechado las GPU para crear supercomputadoras baratas, parece ser la evolución natural de las cosas.Con tanta potencia informática e investigación y desarrollo ya realizados para usted, ¿por qué no explotar la tecnología disponible?

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

Es una de esas cosas para las que ves 1 o 2 aplicaciones, pero pronto a alguien se le ocurrirá una 'aplicación excelente' que descubrirá cómo hacer algo más útil en general con ella, a velocidades ultrarrápidas.

Sombreadores de píxeles para aplicar rutinas a grandes conjuntos de valores flotantes, tal vez veamos algunas aplicaciones de cobertura SIG o bueno, no lo sé.Si no le dedicas más tiempo que yo, tendrás el mismo nivel de conocimiento que yo, es decir, ¡poco!

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

Con tanto poder sin explotar, no veo cómo podría quedar sin uso durante demasiado tiempo.La pregunta, sin embargo, es cómo se utilizará la GPU para esto.CUDA parece ser una buena suposición por ahora, pero están surgiendo otras tecnologías en el horizonte que podrían hacerlo más accesible para el desarrollador promedio.

Apple ha anunciado recientemente OpenCL que, según afirman, 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án tratando de hacerlo altamente interoperable con OpenGL.Esto podría conducir a una tecnología que sea más adecuada para el desarrollo normal de software.

Es un tema interesante y, dicho sea de paso, estoy a punto de comenzar mi tesis de maestría sobre la mejor manera de hacer que la potencia de la GPU esté disponible para los desarrolladores promedio (si es posible) con CUDA como enfoque principal.

Hace mucho tiempo, era muy 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 la 80386).Las personas que necesitaban rendimiento de punto flotante podrían obtener una FPU (por ejemplo, la 80387.Las antiguas FPU estaban bastante integradas en el funcionamiento de la CPU, pero eran externas.Posteriormente se integraron, y el 80486 tenía una FPU incorporada.

La FPU antigua es análoga al cálculo de la GPU.Ya podemos conseguirlo 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 incorporada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top