Vad är strömbearbetning?
Strömbearbetning är ett datorprogrammerings- och datorteknikkoncept som kan användas för att designa applikationer och hårdvarussystem. När strömbehandling används organiseras data i strömmar som sedan matas till noder eller processorer som manipulerar data i strömmen, varefter data fortsätter längs banan så att andra noder kan manipulera dem. I slutet av strömmen placeras data i minnet eller skickas till en slutanvändarapplikation för användning. Ett system eller applikation som använder strömbehandling fungerar mest effektivt när ströminformationen genereras konsekvent av en eller flera källor, vilket gör det effektivt för digital signalbehandling (DSP), avbildning och grafik eller nätverkstrafik med hög bandbredd. Den mest utbredda praktiska tillämpningen av strömbearbetning är produktion av datorgrafikkort, i vilka strömprocessorer är inbyggda i grafikhårdvaran för att hjälpa till att utföra flera operationer på inkommande grafikdata såsom vertexmatriser.
Grunden för strömbehandling handlar om datakonceptet som en ström. Istället för att dra information från olika källor eller avlyssna meddelanden från en avbrottsmekanism, bildas en dataström när information samlas av någon process i en enda rad som kallas en ström. Dataelementen kan variera, men strömmen består i allmänhet av block av samma typ av element som kan behandlas i följd.
Processorerna eller noderna som används vid strömbehandling accepterar en ström och utför en given operation på data, varefter data kan skickas till en annan nod för mer bearbetning. För maximal effektivitet är noderna avsedda att vara små funktioner som laddas och körs direkt på den centrala processorenheten (CPU) med hjälp av register och direktminneåtkomst (DMA) för hastighet. Om informationen i strömmen kan stå ensam och inte är beroende av resultatet av en enda nodens operationer, kan flera operationer utföras på strömmen samtidigt, samtidigt som programkompilatorn ger tips som kan möjliggöra mycket effektiva optimeringar.
Strömbearbetning är i allmänhet en bra lösning för situationer där data konsekvent genereras och skjuts in i strömmen av en applikation eller enhet, såsom en kamera, extern sensor eller nätverksanslutning. Många grafikkort använder strömprocessorer för att snabbt förvandla data som kommer in via en grafikpipeline till en gjord, rasteriserad bild. Vissa grafikkort har flera processorer eller noder inbyggda i kortets hårdvara, så strömbearbetning kan ske snabbt och ibland samtidigt, vilket ofta är önskvärt när skuggmaskiner används för tredimensionell (3D) grafik.