Red de conocimiento informático - Computadora portátil - Diferencias en los mecanismos informáticos entre CPU y GPU

Diferencias en los mecanismos informáticos entre CPU y GPU

Las GPU se diferencian de las arquitecturas DSP en varios aspectos clave. Utiliza aritmética de punto flotante para todos los cálculos y actualmente no tiene instrucciones aritméticas de bits o enteros. Además, dado que la GPU está diseñada para el procesamiento de imágenes, su sistema de memoria es en realidad un espacio de almacenamiento segmentado bidimensional, que incluye un número de segmento (del cual leer la imagen) y una dirección bidimensional (coordenadas X e Y en el imagen) . Además, no hay instrucciones de escritura indirectas. La dirección de escritura de salida la determina el procesador ráster y el programa no puede cambiarla. Este es un gran desafío para los algoritmos que se distribuyen naturalmente en la memoria. Por último, pero no menos importante, no se permite comunicación entre procesos de diferentes fragmentos. De hecho, el procesador de fragmentos es una unidad de ejecución de datos paralelos SIMD que ejecuta código de forma independiente en todos los fragmentos.

A pesar de estas limitaciones, las GPU pueden realizar de manera eficiente operaciones que van desde álgebra lineal y procesamiento de señales hasta simulaciones numéricas. Aunque conceptualmente son simples, los nuevos usuarios pueden confundirse al usar GPU para computación porque requieren conocimientos de gráficos propietarios. En este caso, algunas herramientas de software pueden ayudar. CG y HLSL son dos lenguajes de sombreado de alto nivel que permiten a los usuarios escribir código similar a C y luego compilarlo en un lenguaje ensamblador de procedimientos fragmentado. Por lo tanto, es un excelente punto de partida para los desarrolladores de GPU novatos. Brook es una extensión del lenguaje C que contiene construcciones simples de programación paralela de datos que se asignan directamente a la GPU. Los kernels son flujos de datos almacenados y procesados ​​por la GPU. Los kernels son funciones que operan en flujos de datos. Llamar a una función del núcleo en una secuencia de flujos de datos de entrada significa realizar un bucle implícito sobre los elementos del flujo de datos, es decir, llamar al cuerpo del núcleo para cada elemento del flujo de datos. Brook también proporciona mecanismos de simplificación como sumar, maximizar o multiplicar todos los elementos de un flujo de datos. Se han virtualizado muchas partes desconocidas de la GPU, como el sistema de memoria 2D. Las aplicaciones escritas en Brook incluyen subrutinas de álgebra lineal, transformadas rápidas de Fourier, trazado de rayos y procesamiento de imágenes. Aprovechando las GPU X800XT de ATI y GeForce 6800 Ultra de Nvidia, muchas de estas aplicaciones pueden ser hasta siete veces más rápidas cuando realizan el mismo almacenamiento en caché, ensamblaje SSE y optimizaciones que Pentium 4.

Los usuarios interesados ​​en la computación GPU están trabajando arduamente para mapear algoritmos en los fundamentos de los gráficos. La aparición de lenguajes de programación de alto nivel como Brook ha facilitado a los programadores novatos comprender las ventajas de rendimiento de las GPU. La facilidad de uso de la potencia informática de la GPU también ha permitido que la GPU continúe evolucionando no sólo como motor gráfico sino también como motor informático principal para computadoras personales.

En pocas palabras: la GPU es la unidad de procesamiento de gráficos y la CPU es la unidad central de procesamiento. La CPU procesa instrucciones en una sola línea. La CPU procesa instrucciones en una sola línea, mientras que la GPU procesa instrucciones en paralelo.

GPU es la unidad de procesamiento de gráficos y CPU es la unidad central de procesamiento.