Qu'est-ce que le traitement de flux?
Le traitement de flux est un concept de programmation informatique et d'ingénierie informatique qui peut être utilisé pour concevoir des applications et des systèmes matériels. Lorsque le traitement de flux est utilisé, les données sont organisées en flux qui sont ensuite transmis aux nœuds ou aux processeurs qui manipulent les données dans le flux, après quoi les données continuent le long du chemin afin que les autres nœuds puissent les manipuler. À la fin du flux, les données sont placées en mémoire ou transmises à une application de l'utilisateur final pour être utilisées. Un système ou une application qui utilise le traitement de flux fonctionne plus efficacement lorsque les informations de flux sont générées de manière cohérente par une ou plusieurs sources, ce qui le rend plus efficace pour le traitement du signal numérique (DSP), les images et les graphiques ou le trafic réseau à large bande passante. L'application pratique la plus répandue du traitement de flux est la production de cartes graphiques d'ordinateur, dans lesquelles des processeurs de flux sont intégrés au matériel graphique pour permettre d'effectuer plusieurs opérations sur les données graphiques entrantes telles que les réseaux de sommets.
La base du traitement de flux repose sur le concept de données en tant que flux. Au lieu de tirer des informations de sources disparates ou d'intercepter des messages d'un mécanisme d'interruption, un flux de données est formé lorsque les informations sont rassemblées par un processus quelconque en une seule ligne appelée flux. Les éléments de données peuvent varier, mais le flux se compose généralement de blocs du même type d'éléments pouvant être traités de manière séquentielle.
Les processeurs ou nœuds utilisés dans le traitement de flux acceptent un flux et effectuent une opération donnée sur les données, après quoi les données peuvent être transmises à un autre nœud pour un traitement supplémentaire. Pour une efficacité maximale, les nœuds sont conçus pour être de petites fonctions qui sont chargées et exécutées directement sur l'unité centrale (CPU), à l'aide de registres et d'accès direct à la mémoire (DMA) pour la vitesse. Si les informations contenues dans le flux peuvent être autonomes et ne dépendent pas du résultat des opérations d'un seul nœud, plusieurs opérations peuvent alors être exécutées simultanément sur le flux, tout en fournissant au compilateur de programmes des astuces pouvant permettre des optimisations très efficaces.
Le traitement de flux est généralement une bonne solution pour les situations dans lesquelles des données sont systématiquement générées et insérées dans le flux par une application ou un périphérique, tel qu'une caméra, un capteur externe ou une connexion réseau. De nombreuses cartes graphiques utilisent des processeurs de flux pour transformer rapidement les données provenant d'un pipeline graphique en une image rendue pixellisée. Certaines cartes graphiques ont plusieurs processeurs ou nœuds intégrés dans le matériel de la carte. Le traitement du flux peut donc être rapide et parfois simultané, ce qui est souvent souhaitable lorsque des shaders sont utilisés pour des graphiques en trois dimensions (3D).