lunes, agosto 10, 2009
|
Antes de hablar de una noticia reciente de AMD con respecto a OpenCL, y su profundo significado, veamos primero un poco de historia...
En el 1993, un video-juego captó la imaginación de toda una nueva generación de jugadores en la PC, el juego era Doom, de ID Software. Lo fenomenal de ese juego, aparte de su ingeniosa mecánica, eran los gráficos. Estos fueron programados de tal manera que el juego exprimía hasta la última gota de poder de tu PC en aquel entonces, para convertir a Doom en uno de los primeros juegos con gráficos 3D mas o menos realistas en la PC. Sin embargo, se hizo obvio que el CPU ("Central Processing Unit", es decir, el procesador principal de tu PC, su cerebro, hoy día ejemplificado por modelos como el Intel Pentium, el Intel Core 2 Duo, el AMD Athlon, etc) no era suficiente para el tipo de cálculos necesarios para seguir progresando la industria y generar gráficos cada vez mas convincentes. En otras palabras, las demandas en mejores gráficos estaban sobrepasando el creciente poder del CPU. Es por eso que en esos días la industria de la PC empezó a tomar una idea prestada de la industria de la visualización científica en estaciones de trabajo poderosas, en esos días ejemplificadas por las máquinas de Silicon Graphics (o "SGI"), y los trabajos de pioneros como Evans & Sutherland con sus simuladores de vuelo para las fuerzas armadas. La idea era crear un co-procesador que ayudara al CPU a hacer cálculos específicos a 3D, para así dejar que el CPU se encargara solo de cálculos genéricos (como por ejemplo, la inteligencia de la simulación), y que el co-procesador se encargara de puramente la parte de visualización. O en términos mas simples, el CPU coordina y le dice a co-procesador lo que tiene que dibujar, y el co-procesador toma esos datos y los dibuja en 3D. A este co-procesador es lo que modernamente se le llama un GPU (Graphics Processing Unit). Sin embargo, los ingenieros y programadores responsables de estos GPUs se dieron cuenta de algo: El tipo de cálculos que se ejecutan en un GPU (Transformaciones Fourier, Procesamiento Stream, Transformaciones Matriciales, etc) tienen una aplicación muchísimo mas extensa que solo gráficos en 3D, ya que muchos de estos cálculos son utilizados con frecuencia en editores de sonido, en codificadores/descodificadores de video, en filtros de gráficos en 2D (como Photoshop), y otros. Así que surgió la idea del GPGPU (General-Purpose computing on Graphics Processing Units), es decir, computación genérica en GPUs, en donde la idea es agregarle a los GPUs algunas instrucciones faltantes provenientes del mundo del CPU, para hacer de los GPUs unos super-potentes CPUs adaptados al tipo de operaciones que procesa un GPU, pero casi sin ya necesitar de un CPU. Sin embargo lo que sucedió después es que empresas como NVIDIA y ATI (ahora parte de AMD) sacaron sus propios GPUs con sus propios lenguajes propietarios para programarlos, lo que dividió al industria y frenó el crecimiento de esta tecnología. Pero recientemente ocurrió algo extremadamente positivo que sacudió la industria y puso a todos a caminar al mismo compás: OpenCL. OpenCL es un lenguaje genérico de bajo nivel que estandariza el poder programar para GPUs de una manera independiente del proveedor. Pueden pensar de OpenCL como el equivalente a programar en bajo nivel de Assembly para la arquitectura x86, en donde programas para la x86 funcionan en chips de Intel y AMD, aun estos sean diferentes. Sin embargo, el impulso mas grande para OpenCL lo obtuvo cuando el año pasado Apple anunció que su próxima gran versión de OS X (la versión Snow Leopard que sale próximamente) vendrá con soporte nativo para OpenCL, lo que hará de OS X una super-potente plataforma para todo tipo de cálculos multimedia y científicos cuando este esté instalado en un equipo que contenga un GPU moderno (o CPU multi-núcleos como hablaremos en un momento). Y con eso llegamos al día de hoy, y la noticia que les quería comentar hoy: AMD recientemente anunció que tiene un SDK (kit de desarrollo para programadores) que permitirá que compiles tu código de OpenCL, y hacer que este no solo funcione en un GPU, sino que además en un CPU de multi-núcleos, y sin recompilar la aplicación, con un binario universal. Esta es una noticia importantísima porque significa que: 1. Las PCs que no contengan un GPU (como ocurre con muchas laptops) podrán tomar ventaja de programas que requieran un GPU, aun funcionen un poco mas lento. 2. Será posible tomar ventaja de la nueva generación de CPUs que vendrán con 6, 8, e incluso 32 o mas núcleos para combinar todo ese poder con el poder del GPU (el cual por sí mismo viene con varios núcleos) para efectivamente optimizar al máximo todo el hardware tu PC. Es decir, esto devuelve otra vez la importancia al CPU, lo que significa que pondrá mas presión a los fabricantes como AMD e Intel en fabricar CPUs con mas funcionalidad prestada del GPU en sus diseños de CPU. O en otras palabras, nos acercamos a un futuro en donde no habrá mucha diferencia entre ambos, y en donde podremos mezclar CPUs y GPUs a nuestro antojo según nuestras necesidades. Y sobre la nota de OpenCL en OS X, sucede que Apple implementó OpenCL de tal manera en Snow Leopard, que este ya hará esto que promete AMD hoy. Es decir, OS X automáticamente asignará tantos núcleos del CPU y GPU pueda a cualquier programa de OpenCL, lo que será genial poder ver en persona en un equipo potente cuando este salga al mercado en Septiembre. La buena noticia de hoy sin embargo es que ahora gracias a AMD los usuarios de Windows también podrán disfrutar de esta funcionalidad, la cual funcionará igual de bien tanto en CPUs de AMD como de los de Intel. Y como siempre, pueden leer mas de mis opiniones y análisis en la sección bajo ese nombre a la derecha de la página principal de eliax. Página oficial de esta tecnología en AMD Nota de Prensa Oficial de AMD sobre este avance Fuente de la noticia sobre AMD y OpenCL en CPU y GPU Video de AMD a continuación demostrando esto en un 4 procesadores Opteron de 6 núcleos cada uno (enlace YouTube)... autor: josé elías |
15 comentarios |
Hardware , Opinión / Análisis , Tecnología Visual , Videos |
Comentarios
Añadir Comentario |
en camino a la singularidad...
©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax
Seguir a @eliax
La gracia sería que por fin hiciesen computadoras con X- Windows prewscindiendo de la arquitectura X86, con las (más) potentes GPUS (GP-GPU), kleí que ATI había hecho una supercomputadora así, me imagino una notebook o una PC de sobremesa.
Desgraciadamente ATI no quiere competir con los procesadores AMD, y NVIDIA, al que mandé una sugerencia en este senrido, tuvo a bien contestarme, qu de momento no lo tienen pensado, pero quien sabe en un futuro.
Así, que como no creo que haya ningún loco al que se le ocurra hacer una placa base, un chipset, y un compilador para GPUs, OpenCL será bueno, pero no tanto.