fbpx
Wikipedia

Unidad de procesamiento gráfico

Una unidad de procesamiento gráfico o GPU (graphics processing unit) es un coprocesador dedicado al procesamiento de gráficos u operaciones de coma flotante, para aligerar la carga de trabajo del procesador/CPU central en aplicaciones como los videojuegos o aplicaciones 3D interactivas. De esta forma, mientras gran parte de lo relacionado con los gráficos se procesa en la GPU, la unidad central de procesamiento (CPU) puede dedicarse a otro tipo de cálculos (como la inteligencia artificial o los cálculos mecánicos en el caso de los videojuegos).

Unidad de procesamiento gráfico.

La GPU implementa ciertas operaciones gráficas llamadas primitivas optimizadas para el procesamiento gráfico. Una de las primitivas más comunes para el procesamiento gráfico en 3D es el antialiasing, que suaviza los bordes de las figuras para darles un aspecto más realista. Adicionalmente existen primitivas para dibujar rectángulos, triángulos, círculos y arcos. Las GPU actualmente disponen de gran cantidad de primitivas, buscando mayor realismo en los efectos.

Las GPU están presentes en las tarjetas gráficas.

Historia

Las modernas GPU son descendientes de los chips gráficos monolíticos de finales de la década de 1970 y 1980. Estos chips tenían soporte BitBLT limitado en la forma de sprites (si es que tenían dicho soporte del todo), y usualmente no tenían soporte para dibujo de figuras. Algunos GPU podían ejecutar varias operaciones en una lista de display y podían usar DMA para reducir la carga en el procesador anfitrión; un ejemplo temprano es el coprocesador ANTIC usado en el Atari 800 y el Atari 5200. Hacia finales de la década de 1980 y principios de la de 1990, los microprocesadores de propósito general de alta velocidad fueron muy populares para implementar las GPU más avanzadas. Muchas tarjetas gráficas para PC y estaciones de trabajo usaban procesadores digitales de señales (DSP por sus siglas en inglés) tales como la serie TMS340 de Texas Instruments, para implementar funciones de dibujo rápidas y muchas impresoras láser contenían un procesador de barrido de imágenes "PostScript" (un caso especial de GPU) corriendo en un procesador RISC como el AMD 29000.

Diferencias con la CPU

Si bien en un computador genérico no es posible reemplazar la CPU por una GPU, hoy en día las GPU son muy potentes y pueden incluso superar la frecuencia de reloj de una CPU antigua (más de 1.5 gigahercios). Pero la potencia de las GPU y su veloz ritmo de desarrollo reciente se deben a dos factores diferentes. El primer factor es la alta especialización de las GPU, ya que al estar pensadas para desarrollar una sola tarea, es posible dedicar más silicio en su diseño para llevar a cabo esa tarea más eficientemente. Por ejemplo, las GPU actuales están optimizadas para cálculo con valores en coma flotante, predominantes en los gráficos 3D.

Por otro lado, muchas aplicaciones gráficas conllevan un alto grado de paralelismo inherente, al ser sus unidades fundamentales de cálculo (vértices y píxeles) completamente independientes. Por tanto, es una buena estrategia usar la fuerza bruta en las GPU para completar más cálculos en el mismo tiempo. Los modelos actuales de GPU suelen tener cientos de procesadores shader unificados que son capaces de actuar como vertex shaders, y como pixel shaders, o fragment shaders. De este modo, una frecuencia de reloj de unos 1-1.9 GHz (el estándar hoy en día en las GPU de más potencia), es muy baja en comparación con lo ofrecido por las CPU (3.8-5 GHz en los modelos más potentes, no necesariamente más eficientes), se traduce en una potencia de cálculo mucho mayor gracias a su arquitectura en paralelo.

Una de las mayores diferencias con la CPU estriba en su arquitectura. A diferencia del procesador central, que tiene una arquitectura de von Neumann, la GPU se basa en el Modelo Circulante. Este modelo facilita el procesamiento en paralelo, y la gran segmentación que posee la GPU para sus tareas.

Arquitectura de la GPU

Una GPU está altamente segmentada, lo que indica que posee gran cantidad de unidades funcionales. Estas unidades funcionales se pueden dividir principalmente en dos: aquellas que procesan vértices, y aquellas que procesan píxeles. Por tanto, se establecen el vértice y el píxel como las principales unidades que maneja la GPU.

Adicionalmente, y no con menos importancia, se encuentra la memoria. Ésta destaca por su rapidez, y va a desempeñar un papel relevante a la hora de almacenar los resultados intermedios de las operaciones y las texturas que se utilicen.

Inicialmente, a la GPU le llega la información de la CPU en forma de vértices. El primer tratamiento que reciben estos vértices se realiza en el vertex shader. Aquí se realizan transformaciones como la rotación o el movimiento de las figuras. Tras esto, se define la parte de estos vértices que se va a ver (clipping), y los vértices se transforman en píxeles mediante el proceso de rasterización. Estas etapas no poseen una carga relevante para la GPU.

Donde sí se encuentra el principal cuello de botella del chip gráfico es en el siguiente paso: el pixel shader. Aquí se realizan las transformaciones referentes a los píxeles, tales como la aplicación de texturas. Cuando se ha realizado todo esto, y antes de almacenar los píxeles en la caché, se aplican algunos efectos como el antialiasing, blending y el efecto niebla.

Otras unidades funcionales llamadas unidades de salida de renderizado (ROP, raster operations pipeline) toman la información guardada en la caché y preparan los píxeles para su visualización. También pueden encargarse de aplicar algunos efectos. Tras esto, se almacena la salida en el búfer de fotogramas. Ahora hay dos opciones: o tomar directamente estos píxeles para su representación en un monitor digital, o generar una señal analógica a partir de ellos, para monitores analógicos. Si es este último caso, han de pasar por un DAC, digital-analog converter, para ser finalmente mostrados en pantalla.

Programación de la GPU

Al inicio, la programación de la GPU se realizaba con llamadas a servicios de interrupción de la BIOS. Tras esto, la programación de la GPU se empezó a hacer en el lenguaje ensamblador específico a cada modelo. Posteriormente, se introdujo un nivel más entre el hardware y el software, con la creación de interfaces de programación de aplicaciones (API) específicas para gráficos, que proporcionaron un lenguaje más homogéneo para los modelos existentes en el mercado. La primera API usada ampliamente fue el estándar abierto OpenGL (Open Graphics Language), tras el cual Microsoft desarrolló DirectX.

Tras el desarrollo de estas API, se decidió crear un lenguaje más próximo al natural utilizado por el programador.

Una característica a remarcar de las tarjetas gráficas NVIDIA, el lenguaje de programación máquina debe estar introducido sobre la base de texto unicode 16, dado a la arquitectura de los microchips que utilizan desde la serie GeForce GTX 700.

Cálculos de la GPU para propósito general

Se intenta aprovechar la gran potencia de cálculo de las GPU para aplicaciones no relacionadas con los gráficos, en lo que recientemente se viene a llamar GPGPU, o GPU de propósito general (general purpose GPU, por sus siglas en inglés).

Las GPUs y la química cuántica

La química cuántica es una de las disciplinas donde se requiere de un gran poder de cómputo. Por supuesto que han sido reportadas varias aplicaciones donde las GPUs han sido utilizadas. Varias de esas aplicaciones están relacionadas con la solución de las ecuaciones de Kohn-Sham, dentro de la teoría de funcionales de la densidad, y la solución de las ecuaciones de Hartree-Fock.[1]​ También han sido reportadas aplicaciones relacionadas con métodos basados en la función de onda que estiman la correlación electrónica,[2]​ o energías de ionización.[3][4]​La potencia de las GPUs se ha evidenciado con aplicaciones relacionadas con el modelo de átomos en moléculas.[5]

Véase también

Referencias

  1. I. S. Ufimtsev and T. J. Martinez. Graphical Processing Units for Quantum Chemistry. Computing in Science and Engineering, 10, 26-34 (2008)DOI: 10.1109/MCSE.2008.148
  2. Javier Carmona-Espíndola, Isaías Alcalde-Segundo, Rubicelia Vargas and Jorge Garza. Many-Body Perturbation Theory to Second Order Applied on Confined Helium Like Atoms. In COMPUTATIONAL AND EXPERIMENTAL CHEMISTRY: Developments and applications. CRC Press, New Jersey, 2013.
  3. Erwin García-Hernández, Cecilia Díaz-García, Rubicelia Vargas and Jorge Garza. Implementation of the electron propagator to second order on GPUs to estimate the ionization potentials of confined atoms. J. Phys. B: At. Mol. Opt. Phys. 47 185007 (7pp) (2014). DOI:10.1088/0953-4075/47/18/185007,
  4. Erwin García-Hernández, Cecilia Díaz-García, Rubicelia Vargas and Jorge Garza. Four-index integral transformation in many-body perturbation theory and electron propagator to second order on GPUs for confined atoms. AIP Conf. Proc. 1558 1528-1531 (2013).DOI: 10.1063/1.4825814
  5. Raymundo Hernández-Esparza, Sol-Milena Mejía-Chica, Andy D. Zapata-Escobar, Alfredo Guevara-García, Apolinar Martínez-Melchor, Julio-M. Hernández-Pérez, Rubicelia Vargas, and Jorge Garza. Grid-Based Algorithm to Search Critical Points, in the Electron Density, Accelerated by Graphics Processing Units. Journal of Computational Chemistry. 35 2272-2278 (2014).DOI:10.1002/jcc.23752

Enlaces externos

  •   Wikimedia Commons alberga una galería multimedia sobre Unidad de procesamiento gráfico.
  • www.amd.com Sitio web oficial de ATI/AMD (en español)
  • http://www.nvidia.es Sitio web oficial de NVIDIA (en español)
  • [1] Lo que debes saber acerca de la reparación de tarjeta gráfica del portátil (en español)*
  • [2] Motivos por los que falla una tarjeta gráfica de portátil (en español)*
  •   Datos: Q183484
  •   Multimedia: Graphics processing units

unidad, procesamiento, gráfico, para, otros, usos, este, término, véase, desambiguación, unidad, procesamiento, gráfico, graphics, processing, unit, coprocesador, dedicado, procesamiento, gráficos, operaciones, coma, flotante, para, aligerar, carga, trabajo, p. Para otros usos de este termino vease GPU desambiguacion Una unidad de procesamiento grafico o GPU graphics processing unit es un coprocesador dedicado al procesamiento de graficos u operaciones de coma flotante para aligerar la carga de trabajo del procesador CPU central en aplicaciones como los videojuegos o aplicaciones 3D interactivas De esta forma mientras gran parte de lo relacionado con los graficos se procesa en la GPU la unidad central de procesamiento CPU puede dedicarse a otro tipo de calculos como la inteligencia artificial o los calculos mecanicos en el caso de los videojuegos Unidad de procesamiento grafico La GPU implementa ciertas operaciones graficas llamadas primitivas optimizadas para el procesamiento grafico Una de las primitivas mas comunes para el procesamiento grafico en 3D es el antialiasing que suaviza los bordes de las figuras para darles un aspecto mas realista Adicionalmente existen primitivas para dibujar rectangulos triangulos circulos y arcos Las GPU actualmente disponen de gran cantidad de primitivas buscando mayor realismo en los efectos Las GPU estan presentes en las tarjetas graficas Indice 1 Historia 2 Diferencias con la CPU 3 Arquitectura de la GPU 4 Programacion de la GPU 5 Calculos de la GPU para proposito general 6 Las GPUs y la quimica cuantica 7 Vease tambien 8 Referencias 9 Enlaces externosHistoria EditarLas modernas GPU son descendientes de los chips graficos monoliticos de finales de la decada de 1970 y 1980 Estos chips tenian soporte BitBLT limitado en la forma de sprites si es que tenian dicho soporte del todo y usualmente no tenian soporte para dibujo de figuras Algunos GPU podian ejecutar varias operaciones en una lista de display y podian usar DMA para reducir la carga en el procesador anfitrion un ejemplo temprano es el coprocesador ANTIC usado en el Atari 800 y el Atari 5200 Hacia finales de la decada de 1980 y principios de la de 1990 los microprocesadores de proposito general de alta velocidad fueron muy populares para implementar las GPU mas avanzadas Muchas tarjetas graficas para PC y estaciones de trabajo usaban procesadores digitales de senales DSP por sus siglas en ingles tales como la serie TMS340 de Texas Instruments para implementar funciones de dibujo rapidas y muchas impresoras laser contenian un procesador de barrido de imagenes PostScript un caso especial de GPU corriendo en un procesador RISC como el AMD 29000 Diferencias con la CPU EditarSi bien en un computador generico no es posible reemplazar la CPU por una GPU hoy en dia las GPU son muy potentes y pueden incluso superar la frecuencia de reloj de una CPU antigua mas de 1 5 gigahercios Pero la potencia de las GPU y su veloz ritmo de desarrollo reciente se deben a dos factores diferentes El primer factor es la alta especializacion de las GPU ya que al estar pensadas para desarrollar una sola tarea es posible dedicar mas silicio en su diseno para llevar a cabo esa tarea mas eficientemente Por ejemplo las GPU actuales estan optimizadas para calculo con valores en coma flotante predominantes en los graficos 3D Por otro lado muchas aplicaciones graficas conllevan un alto grado de paralelismo inherente al ser sus unidades fundamentales de calculo vertices y pixeles completamente independientes Por tanto es una buena estrategia usar la fuerza bruta en las GPU para completar mas calculos en el mismo tiempo Los modelos actuales de GPU suelen tener cientos de procesadores shader unificados que son capaces de actuar como vertex shaders y como pixel shaders o fragment shaders De este modo una frecuencia de reloj de unos 1 1 9 GHz el estandar hoy en dia en las GPU de mas potencia es muy baja en comparacion con lo ofrecido por las CPU 3 8 5 GHz en los modelos mas potentes no necesariamente mas eficientes se traduce en una potencia de calculo mucho mayor gracias a su arquitectura en paralelo Una de las mayores diferencias con la CPU estriba en su arquitectura A diferencia del procesador central que tiene una arquitectura de von Neumann la GPU se basa en el Modelo Circulante Este modelo facilita el procesamiento en paralelo y la gran segmentacion que posee la GPU para sus tareas Arquitectura de la GPU EditarUna GPU esta altamente segmentada lo que indica que posee gran cantidad de unidades funcionales Estas unidades funcionales se pueden dividir principalmente en dos aquellas que procesan vertices y aquellas que procesan pixeles Por tanto se establecen el vertice y el pixel como las principales unidades que maneja la GPU Adicionalmente y no con menos importancia se encuentra la memoria Esta destaca por su rapidez y va a desempenar un papel relevante a la hora de almacenar los resultados intermedios de las operaciones y las texturas que se utilicen Inicialmente a la GPU le llega la informacion de la CPU en forma de vertices El primer tratamiento que reciben estos vertices se realiza en el vertex shader Aqui se realizan transformaciones como la rotacion o el movimiento de las figuras Tras esto se define la parte de estos vertices que se va a ver clipping y los vertices se transforman en pixeles mediante el proceso de rasterizacion Estas etapas no poseen una carga relevante para la GPU Donde si se encuentra el principal cuello de botella del chip grafico es en el siguiente paso el pixel shader Aqui se realizan las transformaciones referentes a los pixeles tales como la aplicacion de texturas Cuando se ha realizado todo esto y antes de almacenar los pixeles en la cache se aplican algunos efectos como el antialiasing blending y el efecto niebla Otras unidades funcionales llamadas unidades de salida de renderizado ROP raster operations pipeline toman la informacion guardada en la cache y preparan los pixeles para su visualizacion Tambien pueden encargarse de aplicar algunos efectos Tras esto se almacena la salida en el bufer de fotogramas Ahora hay dos opciones o tomar directamente estos pixeles para su representacion en un monitor digital o generar una senal analogica a partir de ellos para monitores analogicos Si es este ultimo caso han de pasar por un DAC digital analog converter para ser finalmente mostrados en pantalla Programacion de la GPU EditarAl inicio la programacion de la GPU se realizaba con llamadas a servicios de interrupcion de la BIOS Tras esto la programacion de la GPU se empezo a hacer en el lenguaje ensamblador especifico a cada modelo Posteriormente se introdujo un nivel mas entre el hardware y el software con la creacion de interfaces de programacion de aplicaciones API especificas para graficos que proporcionaron un lenguaje mas homogeneo para los modelos existentes en el mercado La primera API usada ampliamente fue el estandar abierto OpenGL Open Graphics Language tras el cual Microsoft desarrollo DirectX Tras el desarrollo de estas API se decidio crear un lenguaje mas proximo al natural utilizado por el programador Una caracteristica a remarcar de las tarjetas graficas NVIDIA el lenguaje de programacion maquina debe estar introducido sobre la base de texto unicode 16 dado a la arquitectura de los microchips que utilizan desde la serie GeForce GTX 700 Calculos de la GPU para proposito general EditarSe intenta aprovechar la gran potencia de calculo de las GPU para aplicaciones no relacionadas con los graficos en lo que recientemente se viene a llamar GPGPU o GPU de proposito general general purpose GPU por sus siglas en ingles Las GPUs y la quimica cuantica EditarLa quimica cuantica es una de las disciplinas donde se requiere de un gran poder de computo Por supuesto que han sido reportadas varias aplicaciones donde las GPUs han sido utilizadas Varias de esas aplicaciones estan relacionadas con la solucion de las ecuaciones de Kohn Sham dentro de la teoria de funcionales de la densidad y la solucion de las ecuaciones de Hartree Fock 1 Tambien han sido reportadas aplicaciones relacionadas con metodos basados en la funcion de onda que estiman la correlacion electronica 2 o energias de ionizacion 3 4 La potencia de las GPUs se ha evidenciado con aplicaciones relacionadas con el modelo de atomos en moleculas 5 Vease tambien EditarCg Direct3D GLSL GPGPU Graficos 3D por computadora HLSL Larrabee OpenGLReferencias Editar I S Ufimtsev and T J Martinez Graphical Processing Units for Quantum Chemistry Computing in Science and Engineering 10 26 34 2008 DOI 10 1109 MCSE 2008 148 Javier Carmona Espindola Isaias Alcalde Segundo Rubicelia Vargas and Jorge Garza Many Body Perturbation Theory to Second Order Applied on Confined Helium Like Atoms In COMPUTATIONAL AND EXPERIMENTAL CHEMISTRY Developments and applications CRC Press New Jersey 2013 Erwin Garcia Hernandez Cecilia Diaz Garcia Rubicelia Vargas and Jorge Garza Implementation of the electron propagator to second order on GPUs to estimate the ionization potentials of confined atoms J Phys B At Mol Opt Phys 47 185007 7pp 2014 DOI 10 1088 0953 4075 47 18 185007 Erwin Garcia Hernandez Cecilia Diaz Garcia Rubicelia Vargas and Jorge Garza Four index integral transformation in many body perturbation theory and electron propagator to second order on GPUs for confined atoms AIP Conf Proc 1558 1528 1531 2013 DOI 10 1063 1 4825814 Raymundo Hernandez Esparza Sol Milena Mejia Chica Andy D Zapata Escobar Alfredo Guevara Garcia Apolinar Martinez Melchor Julio M Hernandez Perez Rubicelia Vargas and Jorge Garza Grid Based Algorithm to Search Critical Points in the Electron Density Accelerated by Graphics Processing Units Journal of Computational Chemistry 35 2272 2278 2014 DOI 10 1002 jcc 23752Enlaces externos Editar Wikimedia Commons alberga una galeria multimedia sobre Unidad de procesamiento grafico www amd com Sitio web oficial de ATI AMD en espanol http www nvidia es Sitio web oficial de NVIDIA en espanol 1 Lo que debes saber acerca de la reparacion de tarjeta grafica del portatil en espanol 2 Motivos por los que falla una tarjeta grafica de portatil en espanol Datos Q183484 Multimedia Graphics processing units Obtenido de https es wikipedia org w index php title Unidad de procesamiento grafico amp oldid 138881024, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos