GPGPU el trabajo de la CPU y de la Unidad de procesamiento gráfico. Continuo desarrollando este tema, en forma de episodios, que se puede seguir también en nuestros otros blogs en español, tanto en el de Perú como en el de Colombia. La razón de ser de esta ampliación temática, radica en últimas en ponderar, visionar y ejecutar estas tecnologías en servidores dedicados cada vez más potentes, acordes a las necesidades de nuestros tiempos y de la Inteligencia Artificial.Originalmente, los datos simplemente se pasaban en una dirección desde una unidad central de procesamiento (CPU) a una unidad de procesamiento de gráficos (GPU), y luego a un dispositivo de visualización .
Sin embargo, a medida que avanzaba el tiempo, las GPU se volvieron valiosas para almacenar al principio estructuras simples y luego complejas de datos que se devuelven a la CPU que analiza una imagen, o un conjunto de datos científicos representados como un formato 2D o 3D que un tarjeta de video puede entender.

Tuberías-GPGPUDebido a que la GPU tiene acceso a cada operación de sorteo, puede analizar los datos en estas formas rápidamente, mientras que una CPU debe sondear cada píxel o elemento de datos mucho más lentamente, como la velocidad de acceso entre una CPU y su grupo más grande de memoria de acceso aleatorio. (o en un caso aún peor, un disco duro) es más lento que las GPU y las tarjetas de video, que generalmente contienen cantidades más pequeñas de memoria más costosa y de acceso mucho más rápido.
La transferencia de la parte del conjunto de datos que se analizará activamente a esa memoria de GPU en forma de texturas u otros formularios de GPU de fácil lectura resulta en un aumento de la velocidad. La característica distintiva de un diseño GPGPU es la capacidad de transferir información de manera bidireccional desde la GPU a la CPU; en general, el rendimiento de los datos en ambas direcciones es idealmente alto, lo que resulta en un efecto multiplicador en la velocidad de un algoritmo específico de alto uso .

Las tuberías GPGPU pueden mejorar la eficiencia en conjuntos de datos especialmente grandes y / o datos que contienen imágenes 2D o 3D. Se utiliza en tuberías de gráficos complejos, así como computación científica ; más aún en campos con grandes conjuntos de datos como el mapeo del genoma , o donde el análisis bidimensional o tridimensional es útil, especialmente en el análisis de biomoléculas actuales , el estudio de proteínas y otros complejos compuestos de química orgánica . Tales tuberías también pueden mejorar enormemente la eficiencia en el procesamiento de imágenes y la visión por computadora , entre otros campos; así como el procesamiento en paralelo en general. Algunas tuberías muy fuertemente optimizadas han producido incrementos de velocidad de varios cientos de veces la tubería original basada en la CPU en una tarea de alto uso.

Un ejemplo simple sería un programa de GPU que recopila datos sobre los valores de iluminación promedio , ya que ofrece una vista desde una cámara o un programa de gráficos de computadora al programa principal de la CPU, para que la CPU pueda realizar ajustes en la pantalla general. ver. Un ejemplo más avanzado podría usar la detección de bordes para devolver tanto la información numérica como una imagen procesada que representa los esquemas a un programa de visión por computadora que controla, por ejemplo, un robot móvil.

Debido a que la GPU tiene un acceso de hardware rápido y local a cada píxel u otro elemento de imagen en una imagen, puede analizarla y promediarla (para el primer ejemplo) o aplicar un filtro de borde Sobel u otra convolución Filtre (para el segundo) con una velocidad mucho mayor que una CPU, que normalmente debe acceder a las copias más lentas de la memoria de acceso aleatorio del gráfico en cuestión.

GPGPU-Concepto de software

GPGPU es fundamentalmente un concepto de software, no un concepto de hardware; es un tipo de algoritmo , no un equipo. Sin embargo, los diseños de equipos especializados pueden mejorar aún más la eficiencia de las tuberías GPGPU, que tradicionalmente realizan relativamente pocos algoritmos en grandes cantidades de datos. Las tareas masivas en paralelo, gigantescas a nivel de datos, por lo tanto, pueden ser paralelizadas aún más a través de configuraciones especializadas tales como computación en bastidor (muchas máquinas similares altamente personalizadas integradas en un bastidor ), que agrega una tercera capa: muchas unidades informáticas utilizan cada una muchas CPU para corresponder a muchas GPUs. Algunos “mineros” de Bitcoin utilizaron tales configuraciones para el procesamiento de grandes cantidades.

Caches

Históricamente, las CPU han usado cachés administrados por hardware, pero las GPU anteriores solo proporcionaban memorias locales administradas por software. Sin embargo, como las GPU se utilizan cada vez más para aplicaciones de uso general, las GPU de última generación se diseñan con cachés de múltiples niveles administrados por hardware que han ayudado a las GPU a avanzar hacia la computación general. Por ejemplo, las GPU de arquitectura GT200 de la serie GeForce 200 no tenían una memoria caché L2, la GPU Fermi tiene 768 KiB de último nivel, la GPU Kepler tiene 1.5 MiB de último nivel, la GPU Maxwell tiene 2 MiB caché de último nivel y la GPU de Pascal tiene 4 cachés de último nivel de MiB.

Registrar archivo

Las GPU tienen archivos de registro muy grandes, lo que les permite reducir la latencia de cambio de contexto. El tamaño del archivo de registro también está aumentando en las diferentes generaciones de GPU, por ejemplo, el tamaño total del archivo de registro en Maxwell (GM200) y las GPU de Pascal son 6 MiB y 14 MiB, respectivamente. En comparación, el tamaño de un archivo de registro en las CPU es pequeño, generalmente decenas o cientos de kilobytes.

Leer también: ¿Qué es la Computación GPU?

Publicado por Angel Eulises Ortiz

Intuitivo y analítico, alfabetizador digital y amante de la escritura como forma de pensar.

Deja un comentario

Deja un comentario