Hva er strømbehandling?
Strømbehandling er et dataprogrammerings- og datateknisk konsept som kan brukes til å designe applikasjoner og maskinvaresystemer. Når strømbehandling brukes, blir dataene organisert i strømmer som deretter mates til noder eller prosessorer som manipulerer dataene i strømmen, hvoretter dataene fortsetter langs banen slik at andre noder kan manipulere dem. På slutten av strømmen plasseres dataene i minnet eller sendes til en sluttbrukerapplikasjon for bruk. Et system eller applikasjon som bruker strømbehandling fungerer mest effektivt når strøminformasjonen blir generert konsekvent av en eller flere kilder, noe som gjør det effektivt for digital signalbehandling (DSP), avbildning og grafikk, eller nettverkstrafikk med høy båndbredde. Den mest utbredte praktiske bruken av strømbehandling er i produksjonen av datamaskingrafikkort, der strømprosessorer er innebygd i grafikkmaskinvaren for å hjelpe til med å utføre flere operasjoner på innkommende grafikkdata som for eksempel vertex-matriser.
Grunnlaget for strømbehandling dreier seg om databegrepet som en strøm. I stedet for å trekke informasjon fra forskjellige kilder eller avskjære meldinger fra en avbrytelsesmekanisme, dannes en datastrøm når informasjon samles av en eller annen prosess til en enkelt linje som kalles en strøm. Dataelementene kan variere, men strømmen består vanligvis av blokker av samme type elementer som kan behandles i rekkefølge.
Prosessorene eller nodene som brukes i strømbehandling aksepterer en strøm og utfører en gitt operasjon på dataene, hvoretter dataene kan sendes til en annen node for mer behandling. For maksimal effektivitet er nodene ment å være små funksjoner som lastes og utføres direkte på den sentrale prosesseringsenheten (CPU) ved bruk av registre og direkte minnetilgang (DMA) for hastighet. Hvis informasjonen i strømmen kan stå alene og ikke er avhengig av resultatet av en enkelt nodes operasjoner, kan flere operasjoner utføres på strømmen samtidig, samtidig som programkompilatoren gir hint som kan gi svært effektive optimaliseringer.
Strømbehandling er generelt en god løsning for situasjoner der data konsekvent blir generert og presset inn i strømmen av en applikasjon eller enhet, for eksempel et kamera, ekstern sensor eller nettverkstilkobling. Mange grafikkort bruker strømprosessorer for å raskt gjøre data som kommer inn gjennom en grafikkrørledning til et gjengitt, rasterisert bilde. Enkelte grafikkort har flere prosessorer eller noder innebygd i maskinvaren på kortet, så strømbehandling kan skje raskt og noen ganger samtidig, som ofte er ønskelig når skyggelegger brukes til tredimensjonal (3D) grafikk.