Sei sulla pagina 1di 12

1

CUDA Compute Unified Device Architecture

Estudiante: Daniel Fernando Betancur Villada.


Profesor: Juan Camilo Acevedo Bedoya.

Universidad Católica Oriente


Rionegro, Antioquia
2018

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
2

Contenidos
1) Introducción
2) Objetivos
3) ¿Qué es CUDA?
4) ¡Cuándo Usar?
5) Requisitos
6) Arquitectura CUDA
7) Tarjetas con mayor capacidad
8) Instalación
9) Ejemplos de Código
10) Entorno de Desarrollo con biblioteca ArrayFire
11) Linux GPU.

Introducción
Atreves de este trabajo nos adentramos en CUDA desde la definición a grandes rasgos hasta
entornos de desarrollo y librerías especializadas para CUDA.

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
3

Objetivos
Dar a conocer la arquitectura de cálculo CUDA teniendo en cuenta la información otorgada
por NVIDIA en su página WEB.
Comprender el uso de las unidades de procesamiento gráfico, como una herramienta para la
aplicación de computación paralela.

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
4

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
5

¿Qué es CUDA?
Arquitectura de procesamiento en paralelo que, gracias a la unidad de procesamiento
grafico mejora el rendimiento de un sistema utilizando herramientas de desarrollo creados
por nVidia.

¿Cuándo Usar?

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
6

Cuando se requiera programar en paralelo, consultar cualquier posición en memoria,


memoria compartida utilizable como cache, lecturas rápidas hacia la GPU y operaciones a
nivel de bit.

Requisitos
Sistema operativo:
Windows 7, 8, 8.1, 10
RAM:
2 GB de memoria de sistema
CPU:
Intel Pentium G Series, Core 2 Duo, Quad Core i3, i5, i7, o superior
AMD Phenom II, Athlon II, Phenom X4, FX o higher
Desktop: GeForce GTX 650 o tarjeta gráfica superior
Notebook: No-Optimus Notebook con GeForce GTX 660M o gráficas superiores (Soporte
para Optimus próximamente)
Controlador de GPU: 355.60 or higher
CPU: Intel i3-2100 3.1GHz
Memoria del sistema: 4 GB o superior
Sistema operativo: Windows 7, 8 o 10
Enrutador
Mínimo: 802.11 a/g
Recomendado: Ethernet o WiFi 802.11n/ac doble banda
Recommended Network Bandwidth: 7 Mbps de subida
Games: DirectX 9 or higher games running in fullscreen exclusive mode**
PC de invitado
GPU: Sin requisitos mínimos
CPU: Intel i3-2100 3,1 GHz o superior
Memoria de Sistema: 4 GB o superior
Software: Chrome versión 44
Sistema operativo: Windows 7, 8 o 10
Enrutador
Mínimo: 802.11 a/g
Recomendado: Ethernet o WiFi 8.02.11n/ac doble banda
Recommended Network Bandwidth: 7 Mbps de bajada.

Arquitectura CUDA

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
7

Un multiprocesador contiene ocho procesadores escalares, dos unidades especiales para


funciones trascendentales, una unidad multihilo de instrucciones y una memoria
compartida. El multiprocesador crea y maneja los hilos sin ningún tipo de overhead por la
planificación, lo cual unido a una rápida sincronización por barreras y una creación de hilos
muy ligera, consigue que se pueda utilizar CUDA en problemas de muy baja granularidad,
incluso asignando un hilo a un elemento por ejemplo de una imagen (un píxel).

Arquitectura CUDA

Tarjetas con mayor capacidad


NVIDIA TITAN V 7.0
NVIDIA TITAN Xp 6.1
NVIDIA TITAN X 6.1

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
8

GeForce GTX 1080 Ti 6.1


GeForce GTX 1080 6.1
GeForce GTX 1070 6.1
GeForce GTX 1060 6.1
GeForce GTX 1050 6.1
GeForce GTX 880M
GeForce GTX 780M
GeForce GTX 770M
GeForce GTX 765M
GeForce GTX 760M
GeForce GT 750M
GeForce GT 745M
GeForce GT 740M
Quadro GP100 6.0
Quadro P6000 6.1
Quadro P5000 6.1
Quadro P4000 6.1
Quadro P2000 6.1
Quadro P1000 6.1
Quadro P6006.1
Quadro P4006.1.
NVIDIA TITAN V

Instalación
Para usar CUDA debes descargar e instalar: los drivers para la tarjeta de video (tu tarjeta
debe soportar CUDA), el toolkit de CUDA que contiene los elementos necesarios para
poder compilar, y el GPU Computing SDK que contiene proyectos de ejemplo. Todo esto

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
9

está disponible para plataformas Windows, Linux y Mac, y se puede descargar en


http://developer.nvidia.com/cuda-downloads.

- Instalación gráfica:

Instale el software CUDA ejecutando el instalador CUDA y siguiendo las instrucciones en


pantalla.
- Instalación silenciosa:

El instalador se puede ejecutar en modo silencioso ejecutando el paquete con el -sbandera.


Se pueden pasar parámetros adicionales que instalarán subpaquetes específicos en lugar de
todos los paquetes.

Ejemplos de Código
1)

librerías

Método de inicio

código

2)
retorno

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
10

Son códigos muy básicos, pero para iniciar pueden resultar interesantes.

Entorno de Desarrollo con biblioteca ArrayFire.


ArrayFire es una completa biblioteca de funciones de fuente abierta con interfaces para C,
C ++, Java, R y Fortran. Se integra con cualquier aplicación CUDA y contiene una API
basada en arreglos para facilitar la programabilidad. La biblioteca ArrayFire contiene el
popular for-loop "GFOR" para ejecutar todas las iteraciones de bucle simultáneamente en la
GPU. Está diseñado para su uso en toda la gama de sistemas, desde sistemas de GPU
individuales hasta grandes supercomputadores de múltiples GPU. La biblioteca ArrayFire
es completamente de código abierto y se puede acceder a través del sitio web ArrayFire.

Linux GPU

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
11

Debe encontrar el modelo y el proveedor correctos de la tarjeta gráfica en su sistema, para


poder instalar los controladores adecuados y lograr que el hardware funcione
correctamente. La mayoría de las distribuciones modernas de Linux pueden detectar una
variedad de tarjetas gráficas, pero no siempre tienen el mejor controlador para ellas.
Con la aceleración 3D basada en hardware, las aplicaciones que necesitan dibujar gráficos
en 3D pueden usar el hardware directamente para procesar y generar los gráficos, lo que
acelera la renderización en 3D de manera significativa. Para esto, la tarjeta gráfica debe ser
compatible con la aceleración de hardware y los controladores correctos deben estar
instalados en el sistema para usar esta característica.
Las funciones de procesamiento 3D proporcionadas por el hardware se adhieren a las
especificaciones de OpenGL, y con el hardware adecuado, las aplicaciones pueden acceder
a ellas a través de la API abierta. OpenGL solo define las funciones y la implementación se
realiza dentro del hardware, lo que lo hace muy rápido.

Conclusion
Arquitectura del computador
Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE
12

Nvidia tiene una de las arquitecturas para GPU más impresionante del mercado sim
embargo aún tiene muchos desafíos que cumplir para hacer que CUDA se quede, ya que,
aunque tecnológicamente es innegablemente un éxito, la tarea ahora es convencer a los
desarrolladores de que es una plataforma creíble, y eso no parece que sea fácil. Sin
embargo, a juzgar por los muchos anuncios recientes en las noticias sobre la API, el futuro
no parece poco prometedor.

Arquitectura del computador


Ingeniería De Sistemas FACULTAD DE INGENIERÍA
UNIVERSIDAD CATÓLICA DE ORIENTE

Potrebbero piacerti anche