Skip to main content

O que é processamento de fluxo?

O processamento de fluxo é um conceito de programação e engenharia de computadores que pode ser usado para projetar aplicativos e sistemas de hardware. Quando o processamento de fluxo é usado, os dados são organizados em fluxos que são alimentados para nós ou processadores que manipulam os dados no fluxo, após o qual os dados continuam no caminho para que outros nós possam manipulá-los. No final do fluxo, os dados são colocados na memória ou passados ​​para um aplicativo do usuário final para uso. Um sistema ou aplicativo que está usando o processamento de fluxo funciona de maneira mais eficaz quando as informações do fluxo são geradas consistentemente por uma ou mais fontes, tornando-o eficaz para o processamento de sinal digital (DSP), geração de imagens e gráficos ou tráfego de rede de alta largura de banda. A aplicação prática mais difundida do processamento de fluxo está na produção de placas gráficas de computador, nas quais os processadores de fluxo são incorporados ao hardware gráfico para ajudar a executar várias operações nos dados gráficos recebidos, como matrizes de vértices.

A base para o processamento do fluxo gira em torno do conceito de dados como um fluxo. Em vez de extrair informações de fontes diferentes ou interceptar mensagens de um mecanismo de interrupção, um fluxo de dados é formado quando informações são coletadas por algum processo em uma única linha chamada fluxo. Os elementos de dados podem variar, mas o fluxo geralmente consiste em blocos dos mesmos tipos de elementos que podem ser processados ​​sequencialmente.

Os processadores ou nós usados ​​no processamento de fluxo aceitam um fluxo e executam uma determinada operação nos dados, após o que os dados podem ser transmitidos para outro nó para mais processamento. Para máxima eficiência, os nós devem ser pequenas funções que são carregadas e executadas diretamente na unidade central de processamento (CPU), usando registradores e acesso direto à memória (DMA) para velocidade. Se as informações no fluxo puderem permanecer sozinhas e não dependerem do resultado das operações de um único nó, várias operações poderão ser executadas no fluxo simultaneamente, ao mesmo tempo em que fornecerão ao compilador do programa dicas que podem permitir otimizações muito eficazes.

O processamento de fluxo geralmente é uma boa solução para situações em que os dados são constantemente gerados e enviados ao fluxo por um aplicativo ou dispositivo, como uma câmera, sensor externo ou conexão de rede. Muitas placas gráficas usam processadores de fluxo para transformar rapidamente os dados que chegam através de um pipeline de gráficos em uma imagem renderizada e rasterizada. Certas placas gráficas possuem vários processadores ou nós incorporados ao hardware da placa, para que o processamento do fluxo possa ocorrer rápida e às vezes simultaneamente, como muitas vezes é desejável quando shaders estão sendo usados ​​para gráficos tridimensionais (3D).