PROGRAMACION DE GPUS USANDO COMPUTE UNIFIED DEVICE ARCHITECTURE (CUDA)

PROGRAMACION DE GPUS USANDO COMPUTE UNIFIED DEVICE ARCHITECTURE (CUDA)

GARCÍA GARCÍA, ALBERTO / ORTS ESCOLANO, SERGIO / CECILIA CANALES, JOSÉ MARÍA / GARCÍA RODRÍGUEZ, JOS

19,13 €
Editorial:
RAMA
Año de edición:
2020
Materia
Programación
ISBN:
978-84-9964-855-2
Páginas:
172
Encuadernación:
Rústica
Colección:
VARIAS
19,13 €
Añadir a favoritos

Índice general Resumen I Prólogo III Agradecimientos V 1. El Nacimiento del Paradigma GPGPU 1 1.1. Hacia la Unidad de Procesamiento Gráfico 1.1.1. El Pipeline Gráfico de Función Fija 1.1.2. La Unidad de Procesamiento Gráfico 1.1.3. La Llegada de los Gráficos Programables 1.2. Primeros Pasos en Computaci´on sobre GPUs 1.3. Evolución y Estancamiento de las CPUs 1.4. El Ascenso de la Computaci´on sobre GPUs 2. Introducción a CUDA 2.1. Arquitectura Hardware 2.1.1. Situación Física e Interconexión . 2.1.2. Single Instruction Multiple Threads (SIMT) 2.1.3. Streaming Multiprocessors (SMs) 2.2. Arquitectura Software 2.2.1. Capas . 2.2.2. Compilación (NVCC y PTX) 2.2.3. Conceptos básicos 2.2.4. Flujo de Ejecución 2.3. Evolución Generacional 2.3.1. Microarquitecturas 2.3.2. CUDA Toolkit 2.3.3. NVIDIA-SMI 2.3.4. Device Query 2.3.5. CUDA Compute Capability 3. Modelo de Procesamiento 3.1. Lanzamiento de Kernels 3.2. Mallas, Bloques, Hilos, Warps y Lanes 3.3. Limitaciones de Memoria 3.4. Limitaciones de Tiempo 3.5. Escalabilidad Transparente y Planificación 3.6. Métodos de Sincronización 3.7. Control de flujo 4. Memorias CUDA 4.1. Jerarquías de Memorias 4.2. Memoria en el Host (CPU) 4.2.1. Pinned memory 4.3. Memoria en el Device (GPU) 4.3.1. Memoria Global 4.3.2. Cantidad de Memoria Global Disponible 4.3.3. Transferencia de Datos de Memoria CPU a GPU 4.3.4. Reserva Estática de Memoria Global 4.3.5. Memoria Local 4.3.6. Registros 4.3.7. Memoria de Constantes 4.3.8. Memoria de texturas 4.3.9. Memoria compartida 4.3.10. Ejemplo de Convolución 1D con Memoria Compartida 4.4. Consideraciones de Rendimiento 4.5. Exprimiendo el Ancho de Banda de la Memoria Global 5. Patrones Paralelos 5.1. Reducción de un vector 5.1.1. Implementación CPU 5.1.2. Implementación GPU B'asico 5.1.3. Optimización con Acceso Coalescente 5.1.4. Optimización con Memoria Compartida 5.2. Histograma 5.2.1. Implementación CPU 5.2.2. Implementación GPU B'asico 5.2.3. Implementación para un Tamaño Arbitrario 5.2.4. Implementación con Histograma Privatizado 5.3. Scan 5.3.1. Implementación CPU 5.3.2. Scan de Hillis-Steele 5.3.3. Scan de Blelloch 6. Aspectos Avanzados 6.1. CUDA Streams y uso de múltiples GPUs 6.2. Medición de Tiempos y Eventos 6.3. Paralelismo Dinámico (CUDA 5.0) 6.4. Memoria Unificada (CUDA 6.0) 6.5. Precisión Mixta (CUDA 8.0) 6.6. Primitivas de Warps (CUDA 9.0) 6.7. Interoperabilidad con OpenGL 7. Estrategias de Paralelización para el Algoritmo de la Colonia de Hormigas en la GPU 7.1. Ant Colony Optimization para el Travelling Salesman Problem 7.2. Estrategias de paralelización 7.2.1. Construcción de los caminos (Tour construction) 7.2.2. Actualización de feromonas 7.2.3. Fusión de las fases principales 7.3. Experimentos 7.3.1. Hardware 7.3.2. Conjuntos de datos y configuración del algoritmo 7.3.3. Evaluación de la etapa de construcción de los caminos 7.3.4. Evaluación de Actualización de Feromonas 7.3.5. Comparación Global de ACO 7.4. Conclusiones y Trabajo Futuro 8. rCUDA (remote CUDA) 8.1. ¿Por qué rCUDA? 8.2. ¿Qué es rCUDA? 8.3. Otras soluciones similares a rCUDA 8.4. ¿Còmo funciona rCUDA? 8.4.1. Configuración del servidor de licencias de rCUDA 8.4.2. Configuración del servidor rCUDA 8.4.3. Configuración del cliente rCUDA 8.5. Beneficios proporcionados por rCUDA A. Cuestiones Bibliografía

El gran aumento en el rendimiento del hardware gráfico, junto con mejoras recientes en su programabilidad, han hecho de dicho hardware un referente como plataforma para las tareas de cómputo exigentes en una gran variedad de dominios de uso. Los últimos años ha crecido el interés en los conocidos colectivamente como GPGPU (Unidades de procesamiento gráfico de propósito general). La formación de especialistas en el uso de GPUs (Unidades de Procesamiento Gráfico) es importante no sólo para la aceleración de juegos por ordenador y aplicaciones multimedia; sino para la aceleración de aplicaciones científicas de todo tipo (inteligencia y visión artificial, robótica, medicina, física, química, matemáticas, biología, computación gráfica y muchos otros. El objetivo de este libro es iniciar a la programación de GPUs dando una visión general de los principales conceptos, pero también de aspectos avanzados y aplicaciones científicas.

Artículos relacionados

  • DISEÑO FUNCIONAL. PRINCIPIOS, PATRONES Y PRACTICAS
    MARTIN, ROBERT C.
    En Diseño funcional, el reputado ingeniero de software Robert C. Martin («Uncle Bob») explica cómo y por qué utilizar la programación funcional para crear sistemas mejores para clientes reales. Martin compara las estructuras de la programación convencional orientada a objetos en Java con las que permiten los lenguajes funcionales, identifica los mejores roles para cada una y mu...
    Nos queda 1 ejemplar

    36,49 €

  • PRINCIPIOS DE PROGRAMACION
    CHACON SARTORI,CAMILO
    ¿Cuáles son los principios subyacentes a toda herramienta en programación? Si quiere conocer los ocho principios, técnicos y conductuales, que dan respuesta a esta pregunta, ha llegado al libro indicado. En una época donde cada día surgen nuevas tecnologías, el beneficio de conocer conceptos transversales a todas ellas no solo es imprescindible, sino también necesario. Además, ...
    Nos queda 1 ejemplar

    32,50 €

  • APRENDE MACHINE LEARNING CON SCIKIT-LEARN, KERAS Y TENSORFLOW. TE
    GÉRON, AURÉLIEN
    Gracias a varios logros innovadores, el deep learning ha dado un gran impulso a todo el campo del machine learning. Ahora, incluso programadores que no saben casi nada de esta tecnología pueden usar herramientas sencillas y eficaces para implementar programas capaces de aprender a partir de datos. Este best seller utiliza ejemplos concretos, una teoría mínima y frameworks de Py...
    Nos queda 1 ejemplar

    72,07 €

  • CURSO DE ALGOTIRMOS Y PROGRAMACION A FONDO
    SZNAJDLEDER,PABLO
    Si desea adentrarse en el mundo de la programación desde cero y avanzar progresivamente hasta cubrir los aspectos más complejos de la programación en C++, mediante el análisis y desarrollo de gran cantidad de problemas algorítmicos de todos los niveles, este libro será su gran aliado. Curso de algoritmos y programación a fondo presenta 16 lecciones, distribuidas en 6 capítulos,...
    Nos queda 1 ejemplar

    27,21 €

  • EL GRAN LIBRO DE KOTLIN PARA PROGRAMADORES DE BACK END
    CRIADO FERNANDEZ, LUIS
    Si como programador de back end quiere evolucionar al mismo tiempo que aprovechar todo su código en Java, sin duda, debe empezar por adoptar Kotlin, un nuevo lenguaje de programación, equiparado a Java en el mundo Android. Emplear profesionalmente un nuevo lenguaje de programación puede ser un problema en la empresa en la que trabaja, sobre todo si se tiene invertido mucho códi...
    Nos queda 1 ejemplar

    23,99 €

  • PROGRAMACION MULTIMEDIA DE DISPOSITIVOS MOVILES ANDROID 2ºE
    LOPEZ MONTALBÁN, IVÁN / PÉREZ DURÁN, MARÍA
    Este libro va dirigido a todas aquellas personas que tengan la intención de aprender a programar dispositivos móviles utilizando Android. Para conseguirlo, es necesario contar con conocimientos de programación en Java o en algún otro lenguaje Orientado a Objetos. El enfoque que se sigue es básicamente práctico acompañado de una parte teórica básica para exponer los contenidos n...
    Nos queda 1 ejemplar

    27,88 €