La mayoría de las tarjetas de video más nuevas tienen procesadores de flujo integrados en su unidad de procesamiento de gráficos. La GPU también puede estar integrada en la placa base o en la propia unidad central de procesamiento. El procesamiento de flujo es una técnica de programación que simplifica el procesamiento paralelo de hardware y software. Los procesadores de flujo en la GPU manejan la mayoría de las tareas tradicionales de renderizado de gráficos, o se pueden programar alternativamente para un procesamiento de números de uso más general.
Aplicaciones:
Los procesadores de flujo son adecuados para tareas tradicionales centradas en GPU, como procesamiento de imágenes, videos y señales. Sin embargo, se está volviendo cada vez más común utilizar también los procesadores de flujo en la GPU para el procesamiento de números de uso general y científico. Las técnicas de procesamiento de corrientes funcionan bien para el trazado de rayos, la dinámica de fluidos computacional, el modelado meteorológico y los cálculos de plegamiento de proteínas. Las aplicaciones que requieren operaciones vectoriales masivas y cálculos de alto rendimiento obtienen grandes ganancias en comparación con el procesamiento de números de CPU convencional. Es posible que las aplicaciones de uso general no vean mejoras de velocidad.
Historia
Las CPU tradicionales funcionaban como un solo procesador que ejecutaba un único flujo de instrucciones que operaba con datos almacenados en una única ubicación de memoria. Esta arquitectura se conoce como "instrucción única, datos únicos". Se desarrollaron técnicas paralelas para hacer frente a la creciente cantidad de datos que debían procesarse, permitiendo operaciones en múltiples ubicaciones de datos simultáneamente. El procesamiento de secuencias es una rama de estos desarrollos que facilita algunas de las implementaciones del mundo real que se encuentran en las tecnologías anteriores.
Consideraciones
Las aplicaciones que deseen utilizar el procesamiento de flujo deben diseñarse desde el principio para aprovechar la tecnología de manera eficaz. No todos los programas se beneficiarán, y la mayoría de las aplicaciones comerciales de propósito general verán una aceleración limitada o nula frente a las enormes ganancias obtenidas con programas o técnicas de desarrollo muy especializados. El procesamiento de secuencias es adecuado para programas que requieren una alta intensidad computacional que se ajusta a un modelo de ejecución en paralelo.
Otras medidas de desempeño
La cantidad de procesadores de flujo (y su velocidad) no son la única medida significativa para el rendimiento de la GPU. Las diferentes GPU tienen diferentes velocidades de reloj entre la propia GPU, la memoria y los procesadores. También tienen diferentes restricciones de arquitectura y ancho de banda entre estos componentes separados. Todo esto en conjunto determina el rendimiento efectivo de la GPU en su conjunto. Las revisiones y los puntos de referencia son la mejor manera de juzgar el rendimiento total de una GPU en comparación con otras unidades comparables.