Stream -prosessointi on tietokoneohjelmointi- ja tietotekniikkakonsepti, jota voidaan käyttää sovellusten ja laitteistojärjestelmien suunnitteluun. Kun käytetään virrankäsittelyä, tiedot järjestetään virtoiksi, jotka syötetään sitten solmuihin tai prosessoreihin, jotka manipuloivat virran tietoja, minkä jälkeen tiedot jatkavat polkua pitkin, jotta muut solmut voivat käsitellä niitä. Striimin lopussa tiedot tallennetaan muistiin tai välitetään loppukäyttäjäsovellukselle käytettäväksi. Järjestelmä tai sovellus, joka käyttää virrankäsittelyä, toimii tehokkaimmin, kun yksi tai useampi lähde tuottaa virratietoja johdonmukaisesti, mikä tekee siitä tehokkaan digitaalisen signaalinkäsittelyn (DSP), kuvantamisen ja grafiikan tai suuren kaistanleveyden verkkoliikenteen kannalta. Yleisimpiä virtuaalisen prosessoinnin käytännön sovelluksia on tietokonegrafiikkakorttien valmistus, jossa grafiikkalaitteistoihin on rakennettu virtaprosessoreita, jotka auttavat suorittamaan useita toimintoja saapuville grafiikkatiedoille, kuten kärkipisteille.
Virrankäsittelyn perusta pyörii datan käsityksenä virtana. Sen sijaan, että otettaisiin tietoja eri lähteistä tai siepataan viestejä keskeytysmekanismista, tietovirta muodostuu, kun jokin prosessi kerää tietoja yhdeksi riviksi, jota kutsutaan virraksi. Tietoelementit voivat vaihdella, mutta virta koostuu yleensä samantyyppisten elementtien lohkoista, joita voidaan käsitellä peräkkäin.
Virrankäsittelyssä käytetyt prosessorit tai solmut hyväksyvät virran ja suorittavat tietyn toiminnon tiedoille, minkä jälkeen tiedot voidaan siirtää toiseen solmuun lisäkäsittelyä varten. Maksimaalisen tehokkuuden saavuttamiseksi solmut on tarkoitettu pieniksi toiminnoiksi, jotka ladataan ja suoritetaan suoraan keskusyksikköön (CPU) käyttämällä nopeutta rekistereiden ja suoran muistin käytön (DMA) avulla. Jos virran sisältämät tiedot voivat olla erillisiä eivätkä ole riippuvaisia yksittäisen solmun toimintojen tuloksista, virralle voidaan suorittaa useita toimintoja samanaikaisesti ja samalla antaa ohjelman kääntäjälle vihjeitä, jotka voivat mahdollistaa erittäin tehokkaat optimoinnit.
Suoratoisto on yleensä hyvä ratkaisu tilanteisiin, joissa sovellus tai laite, kuten kamera, ulkoinen anturi tai verkkoyhteys, tuottaa jatkuvasti dataa ja siirtää sen virtaan. Monet näytönohjaimet käyttävät virtaprosessoreita muuttaakseen grafiikkaputken kautta tulevat tiedot nopeasti renderoiduksi, rasteroiduksi kuvaksi. Joissakin näytönohjaimissa on useita suorittimia tai solmuja kortin laitteistoon, joten virran käsittely voi tapahtua nopeasti ja joskus samanaikaisesti, mikä on usein toivottavaa, kun varjostimia käytetään kolmiulotteiseen (3D) grafiikkaan.