Le traitement de flux est une programmation de l'ordinateur et un concept technique d'ordinateur qui peut être utilisée pour les applications de conception et de systèmes matériels. Lorsque le traitement de flux est utilisé, les données sont organisées dans les ruisseaux qui alimentent ensuite les nœuds ou les transformateurs qui manipulent les données dans le flux, après quoi les données continuent le long de la voie afin que les autres nœuds puissent les manipuler. A la fin du flux, les données sont mises en mémoire ou transmises à une application d'utilisateur final pour une utilisation. Un système ou une application qui utilise le traitement des flux est plus efficace lorsque les informations de flux est généré systématiquement par une ou plusieurs sources, ce qui rend efficace pour le traitement numérique du signal (DSP), l'imagerie et le graphisme ou le trafic réseau à large bande passante. L'application pratique la plus répandue de traitement de flux est dans la production de cartes graphiques informatiques, dans lequel processeurs de flux sont intégrés dans le matériel graphique pour aider à effectuer plusieurs opérations sur les données graphiques entrants tels que les tableaux de vertex.
La base pour le traitement des flux tourne autour de la notion de données en un flux. Au lieu de tirer des informations provenant de sources disparates ou des messages d'interception d'un mécanisme d'interruption, un flux de données est formé lorsque les informations sont recueillies par quelque procédé en une seule ligne, appelé un ruisseau. Les éléments de données peuvent varier, mais le flux est généralement constitué de blocs de mêmes types d'éléments qui peuvent être traitées de façon séquentielle.
Les processeurs ou des nœuds utilisés dans le traitement des flux d'accepter un flux et d'effectuer une opération donnée sur les données, après quoi les données peuvent être transmises à un autre nœud pour plus de traitement. Pour une efficacité maximale, les nœuds sont destinés à de petites fonctions qui sont chargées et exécutées directement sur l'unité centrale de traitement (CPU), en utilisant des registres et l'accès direct à la mémoire (DMA) pour la vitesse. Si l'information dans le flux peut être autonome et ne dépend pas du résultat des opérations d'un seul nœud, plusieurs opérations peuvent être effectuées sur le flux simultanément, tout en fournissant le compilateur de programme avec des notes qui peuvent permettre à des optimisations très efficaces.
Le traitement de flux est généralement une bonne solution pour les cas dans lesquels les données sont systématiquement étant généré et poussé dans le jet par une application ou d'un dispositif, tel qu'une caméra, un capteur externe ou une connexion réseau. Beaucoup de cartes graphiques utilisent des processeurs de flux à transformer rapidement les données entrant par un pipeline graphique en un, a rendu l'image pixellisée. Certaines cartes graphiques disposent de plusieurs processeurs ou des nœuds intégrés dans le matériel de la carte, de sorte que le traitement des flux peuvent se produire rapidement et parfois simultanément, comme c'est souvent souhaitable quand les shaders sont utilisés pour tridimensionnels graphiques (3D).