texto:   A-   A+
eliax

Sobre evolución del GPU, e implementación de AMD de OpenCL en CPU/GPU
eliax id: 6927 josé elías en ago 10, 2009 a las 12:20 AM (00:20 horas)
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

Comentarios

  • 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.

    • AMD es dueño de ATI.

  • porque si Windows hará eso, siempre le das más enfasis al f OSX..... O sea, si no eres un macfan quien lo será?

    • Anónimo,

      Sencillo: Apple lo hizo primero. Mucho antes. Tiene al menos 2 años trabajando en eso y su implementación saldrá el próximo mes. Esto de AMD es para un futuro no determinado.

      Aprende a ser imparcial y podrás leer con mas comodidad mas allá de tu obvio fanatismo por Windows...

      • ....bueeeno Direct 3D 11 (parte de Direct X y a ser implementado desde ya en Windows 7, el cual estoy usando) implementa la funciones de GPGPU, y eso windows lo ha desarrollado con mucha anterioridad. Por otro lado, OpenCL no sería exclusivo de OSX, para refrescarte la memoria, OpenGL supuestamente seria la tecnologia que acabaria con DirectX, sin embargo, todo el mundo sabe que Windows/Xbox es la plataforma mas popular del mercado, y que cuando se habla de juegos para PC por defecto se habla de windows.... lo que quiero decir es que aunque OpenGL sea open source como lo es OpenCL, está por verse en la práctica su popularidad de implementación, debido a que son los programadores quienes deciden cuales son las mejores herramientas de programación.

        Hasta ahora, la mejor herramienta de programacion para video juegos para PC es DirectX, y si esta tuviera que usar luego OpenCL, simplemente lo haría porque Apple no ha desarrollado nunca nada propietariamente (OSX basado en Unix, iPhone basado en unix, etc.)

        • jajajajajaja "Apple no ha desarrollado nunca nada propietariamente"...

          WOW!! eres admirable anonimo...

          supongo que tu es historia sacas puros CEROS, verdad?

      • ... perdón, apple si presentó la idea de OpenCL que luego fue refinada con aportes de Intel, AMD, Nvidia y compañías de software del mercado y que posteriormente fue presentada la propuesta al Khronos Group.

        De todos modo, vamos a ver como se desarrolla esta tecnología (OpenCL) porque OpenGL ni siquiera se implementaba en la mayorias de juegos.

  • Che no es "OPEN GL"?????????

    • Che, es Open CL (Open Computing Language). Eliax Apple no propuso la creacion de Open CL??, porq yo creo q si. Porq la manera en q la redactastes das a entender q Apple solamente la adopto y ya, hay q darle credito no crees, se que el tema es sobre AMD implementando OpenCL pero es importante q las personas q lean tu blog sepan q OpenCL fue creada por la manzana mas codiciada en el mundo del silicon. laters.

    • OpenGL y OpenCL son dos cosas totalmente diferentes.

      OpenGL es un API para 3D. OpenCL es un API para programar de manera genérica un GPU.

  • Eliax, sera que esta implementacion funciona en la serie HD 4800??

    Por que Nvidia ya tiene las implementaciones listas para Windows y Linux con sus series 8x00 y 9x00

    Nota: Soy un orgulloso propietario de una ATi HD 4850

  • Esos juegos son los unicos capaces de usar al 100% el poder de los procesadores actuales, hay uno llamado .kkrieger que en 96 kb genera instruccion para generar el juego.

    Y tambien hay un salvapantallas que se genera a si mismo
    Links


    http://www.pixfans.com/kkrieger-shooter-3d-que-ocupa-tan-solo-96-kb/


    http://www.fayerwayer.com/2009/05/pixel-city-ciudad-generada-dinamicamente-por-computadora/

  • Cuando se hablan de formatos propietarios creo que la mención de apple o windows se hace obligatoria, pero la noticia de hoy la veo mas orientada al software libre, es decir, un lenguaje multiplataforma no propietaria, esto tiene implicancias para cualquier sistema operativo pero sobre todo para linux ya que apple y microsoft siempre han disfrutado de las mejores optimizaciones para sus plataformas.

    saludos

  • Es bueno el tema que muestra, en esta pagina
    pero me gustaria , que colocaras un tema sobre
    las investigaciones de aquel famoso cientifico nicolas tesla
    sobre los campos electromagneticos y levitacion de
    objetos usando electro magnetismo.

    Cuales cientificos siguieron sus pasos.

  • Apple no solo la propuso sin no que toco la puerta de su primer y mas confiable socio nvdia y ellos en su laboratorios le dieron forma, pero el desarrollo fueron de los papas de los helado Khronos Group, con aporte economicos de 3DLABS, Activision Blizzard, AMD, ARM, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, Fujitsu, GE, Graphic Remedy, HI, IBM, Intel, Imagination Technologies, Los Alamos National Laboratory, Motorola, Movidius, Nokia, Petapath, QNX, Qualcomm, RapidMind, Samsung, Seaweed, S3, ST Microelectronics, Takumi, Texas Instruments, Toshiba y Vivante Studios.
    El Open cl ha sido alabado hasta por la Nasa.
    El credito no esta en quien tubo la idea o quien lo desarrollo, si no en que todos estubieron deacuerdo y se unieron para desarrollar esta preciosidad.
    Se cree que en la proxima version de Windows 8 incorporen el open cl, junto al fiasco de diretx, y el open Gl.
    "Open Cl y Open Gl" es verdad son dos cosas distinta, pero que trabajaran en conjunto, segun mejorando el open gl hasta en un 200%.

Añadir Comentario

tu nombre
tu email
(opcional)
web personal
(opcional)
en respuesta a...
comentario de caracteres máximo
5 + 3 = requerido (control anti-SPAM)
 

"Muchas felicidades a toda la comunidad de Eliax. No podes imaginar la felicidad que sentí al momento de abrir la web y ver una version totalmente diferente que la del dia anterior. Lo primero que me vino a la cabeza y antes de leer acerca de Emmanuel e Idrialis fué..."Esto va a marcar un antes y un despues ...".

Muchas felicidades y brindemos por muchos años mas!

Saludos desde Uruguay
"

por "Santiago" en abr 2, 2013


en camino a la singularidad...

©2005-2014 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax