PDF de programación - Arquitecturas basadas en computación gráfica (GPU)

Imágen de pdf Arquitecturas basadas en computación gráfica (GPU)

Arquitecturas basadas en computación gráfica (GPU)gráfica de visualizaciones

Publicado el 13 de Abril del 2018
896 visualizaciones desde el 13 de Abril del 2018
2,2 MB
68 paginas
Creado hace 12a (01/03/2012)
Arquitecturas
basadas en
computación
gráfica (GPU)


Francesc Guim
Ivan Rodero

PID_00184818

CC-BY-NC-ND • PID_00184818

Arquitecturas basadas en computación gráfica (GPU)

Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de
Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España de Creative Commons. Podéis copiarlos, distribuirlos
y transmitirlos públicamente siempre que citéis el autor y la fuente (FUOC. Fundación para la Universitat Oberta de Catalunya),
no hagáis de ellos un uso comercial y ni obra derivada. La licencia completa se puede consultar en http://creativecommons.org/
licenses/by-nc-nd/3.0/es/legalcode.es

CC-BY-NC-ND • PID_00184818

Índice

Arquitecturas basadas en computación gráfica (GPU)


Introducción...............................................................................................

Objetivos.......................................................................................................

1.

Introducción a la computación gráfica.......................................
Pipeline básico ..............................................................................
1.1.
Etapas programables del pipeline..................................................
1.2.
1.3.
Interfaces de programación del pipeline gráfico ..........................
1.4. Utilización del pipeline gráfico para computación general ..........


2. Arquitecturas orientadas al procesamiento gráfico.................
2.1. Contexto y motivación ...............................................................
2.2. Visión histórica ...........................................................................
2.3. Características básicas de los sistemas basados en GPU ..............
2.4. Arquitectura Nvidia GeForce .......................................................
2.5. Concepto de arquitectura unificada ...........................................


3. Arquitecturas orientadas a computación de propósito

general sobre GPU (GPGPU)............................................................
3.1. Arquitectura Nvidia .....................................................................
3.2. Arquitectura AMD (ATI) ..............................................................
3.2.1. Arquitectura AMD CU ...................................................
3.3. Arquitectura Intel Larrabee .........................................................


4. Modelos de programación para GPGPU.......................................
4.1. CUDA ...........................................................................................
4.1.1. Arquitectura compatible con CUDA .............................
4.1.2.
Entorno de programación .............................................
4.1.3. Modelo de memoria ......................................................
4.1.4. Definición de kernels.......................................................
4.1.5. Organización de flujos ...................................................
4.2. OpenCL .......................................................................................
4.2.1. Modelo de paralelismo a nivel de datos ........................
4.2.2. Arquitectura conceptual ................................................
4.2.3. Modelo de memoria ......................................................
4.2.4. Gestión de kernels y dispositivos ...................................


Resumen.......................................................................................................

Actividades..................................................................................................


5

6

7
7
9
11
14

16
16
17
19
22
26

28
31
36
38
40

45
45
45
46
50
53
54
57
57
59
59
61

64

65

CC-BY-NC-ND • PID_00184818

Arquitecturas basadas en computación gráfica (GPU)

Bibliografía.................................................................................................

68

CC-BY-NC-ND • PID_00184818

Introducción

5

Arquitecturas basadas en computación gráfica (GPU)

En este módulo didáctico, vamos a estudiar las arquitecturas basadas en
computación gráfica (GPU), que es una de las tendencias en computación pa-
ralela con más crecimiento en los últimos años y que goza de gran populari-
dad, entre otras cuestiones, debido a la buena relación entre las prestaciones
que ofrecen y su coste.

Primero repasaremos los fundamentos de la computación gráfica para enten-
der los orígenes y las características básicas de las arquitecturas basadas en
computación gráfica. Estudiaremos el pipeline gráfico y su evolución desde ar-
quitecturas con elementos especializados hasta los pipelines programables y la
arquitectura unificada, que permite la programación de aplicaciones de pro-
pósito general con GPU. Veremos las diferencias principales entre CPU y GPU
y algunas de las arquitecturas GPU más representativas, poniendo énfasis en
cómo pueden ser programados ciertos elementos.

Una vez presentadas las arquitecturas orientadas a computación gráfica, nos
centraremos en las arquitecturas unificadas modernas que están focalizadas
en la programación de aplicaciones de propósito general. Analizaremos las
características de las principales arquitecturas relacionadas, como son las de
Nvidia, AMD e Intel. Finalmente, estudiaremos CUDA y OpenCL, que son los
principales modelos de programación para aplicaciones de propósito general
sobre GPU.

CC-BY-NC-ND • PID_00184818

Objetivos

6

Arquitecturas basadas en computación gráfica (GPU)

Los materiales didácticos de este módulo contienen las herramientas necesa-
rias para alcanzar los objetivos siguientes:

1. Conocer los fundamentos de la computación gráfica y las características

básicas del pipeline gráfico.

2. Entender las diferencias y similitudes entre las arquitecturas CPU y GPU y

conocer las características de las arquitecturas gráficas modernas.

3. Entender la creciente importancia de la programación masivamente para-
lela y las motivaciones de la computación de propósito general para GPU
(GPGPU).

4. Entender las diferencias entre arquitecturas orientadas a gráficos y arqui-

tecturas orientadas a la computación de propósito general.

5.

Identificar la necesidad y fuente de paralelismo de datos de las aplicaciones
para GPU.

6. Aprender los conceptos fundamentales para programar dispositivos GPU

y los conceptos básicos de CUDA y OpenCL.

CC-BY-NC-ND • PID_00184818

7

Arquitecturas basadas en computación gráfica (GPU)

1. Introducción a la computación gráfica

En este apartado, vamos a estudiar los fundamentos más básicos de la compu-
tación gráfica como paso previo para estudiar las características de las arqui-
tecturas orientadas al procesamiento gráfico.

1.1. Pipeline básico

Tradicionalmente, los procesadores gráficos funcionan mediante un pipeline
de procesamiento formado por etapas muy especializadas en las funciones que
desarrollan y que se ejecutan en un orden preestablecido. Cada una de las eta-
pas del pipeline recibe la salida de la etapa anterior y proporciona su salida a
la etapa siguiente. Debido a la implementación mediante una estructura de
pipeline, el procesador gráfico puede ejecutar varias operaciones en paralelo.
Como este pipeline es específico para la gestión de gráficos, normalmente se
denomina pipeline gráfico o pipeline de renderización. La operación de rende-
rización consiste en proyectar una representación en tres dimensiones de una
imagen en dos dimensiones (que es el objetivo de un procesador gráfico).

La entrada del procesador gráfico es una secuencia de vértices agrupados en
primitivas geométricas (polígonos, líneas y puntos), que son tratadas secuen-
cialmente por medio de cuatro etapas básicas, tal como muestra el pipeline
simplificado de la figura 1.

Figura 1. Pipeline simplificado de un procesador gráfico

La etapa de transformación de￿vértices consiste en la ejecución de una se-
cuencia de operaciones matemáticas sobre los vértices de entrada basándose
en la representación 3D proporcionada. Algunas de estas operaciones son la

CC-BY-NC-ND • PID_00184818

8

Arquitecturas basadas en computación gráfica (GPU)

actualización de la posición o la rotación de los objetos representados, la ge-
neración de coordenadas para poder aplicar texturas o la asignación de color
a los vértices. La salida de esta fase es un conjunto de vértices actualizados,
uno para cada vértice de entrada.

En la etapa de￿acoplamiento￿de￿primitivas￿y￿rasterización, los vértices trans-
formados se agrupan en primitivas geométricas basándose en la información
recibida junto con la secuencia inicial de vértices. Como resultado, se obtiene
una secuencia de triángulos, líneas y puntos. Estos puntos son posteriormente
procesados en una etapa llamada rasterización. La rasterización es un proceso
que determina el conjunto de píxeles afectados por una primitiva determina-
da. Los resultados de la rasterización son conjuntos de localizaciones de píxe-
les y conjuntos de fragmentos. Un fragmento tiene asociada una localización
y también información relativa a su color y brillo o bien a coordenadas de
textura. Como norma general, podemos decir que, de un conjunto de tres o
más vértices, se obtiene un fragmento.

En la etapa de aplicación￿de￿texturas￿y￿coloreado, el conjunto de fragmentos
es procesado mediante operaciones de interpolación (predecir valores a partir
de la información conocida), operaciones matemáticas, de aplicación de tex-
turas y de determinación del color final de cada fragmento. Como resultado
de esta etapa, se obtiene un fragmento actualizado (coloreado) para cada frag-
mento de entrada.

En las últimas etapas del pipeline, se ejecutan operaciones llamadas raster, que
se encargan de analizar los fragmentos mediante un conjunto de tests rela-
cionados con aspectos gráficos. Estos tests determinan los valores finales que
tomarán los píxeles. Si alguno de estos tests falla, se descarta el píxe
  • Links de descarga
http://lwp-l.com/pdf10400

Comentarios de: Arquitecturas basadas en computación gráfica (GPU) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad