Co to jest przetwarzanie strumieniowe?

Przetwarzanie strumieniowe to koncepcja programowania i inżynierii komputerowej, którą można wykorzystać do projektowania aplikacji i systemów sprzętowych. Gdy używane jest przetwarzanie strumienia, dane są organizowane w strumienie, które są następnie podawane do węzłów lub procesorów, które manipulują danymi w strumieniu, po czym dane są kontynuowane wzdłuż ścieżki, aby inne węzły mogły nimi manipulować. Na końcu strumienia dane są umieszczane w pamięci lub przekazywane do aplikacji użytkownika końcowego w celu użycia. System lub aplikacja korzystająca z przetwarzania strumienia działa najskuteczniej, gdy informacje o strumieniu są generowane konsekwentnie przez jedno lub więcej źródeł, dzięki czemu są skuteczne w cyfrowym przetwarzaniu sygnału (DSP), obrazowaniu i grafice lub w ruchu o dużej przepustowości. Najbardziej rozpowszechnionym praktycznym zastosowaniem przetwarzania strumieniowego jest produkcja komputerowych kart graficznych, w których procesory strumieniowe są wbudowane w sprzęt graficzny, aby pomóc w wykonywaniu wielu operacji na przychodzących danych graficznych, takich jak tablice wierzchołków.

Podstawą przetwarzania strumienia jest koncepcja danych jako strumienia. Zamiast czerpać informacje z różnych źródeł lub przechwytywać wiadomości z mechanizmu przerywającego, strumień danych jest tworzony, gdy informacje są zestawiane przez jakiś proces w jedną linię zwaną strumieniem. Elementy danych mogą się różnić, ale ogólnie strumień składa się z bloków tego samego rodzaju elementów, które mogą być przetwarzane sekwencyjnie.

Procesory lub węzły używane do przetwarzania strumienia akceptują strumień i wykonują daną operację na danych, po czym dane mogą być przekazywane do innego węzła w celu dalszego przetwarzania. Aby uzyskać maksymalną wydajność, węzły mają być małymi funkcjami, które są ładowane i wykonywane bezpośrednio na centralnej jednostce przetwarzania (CPU), przy użyciu rejestrów i bezpośredniego dostępu do pamięci (DMA) w celu zwiększenia prędkości. Jeśli informacje w strumieniu mogą być niezależne i nie są zależne od wyniku operacji jednego węzła, wówczas w strumieniu można wykonać wiele operacji jednocześnie, jednocześnie zapewniając kompilatorowi programu wskazówki, które mogą pozwolić na bardzo skuteczne optymalizacje.

Przetwarzanie strumienia jest ogólnie dobrym rozwiązaniem w sytuacjach, w których dane są stale generowane i przesyłane do strumienia przez aplikację lub urządzenie, takie jak kamera, czujnik zewnętrzny lub połączenie sieciowe. Wiele kart graficznych wykorzystuje procesory strumieniowe, aby szybko przekształcić dane przychodzące przez potok graficzny w renderowany, zrasteryzowany obraz. Niektóre karty graficzne mają wiele procesorów lub węzłów wbudowanych w sprzęt karty, więc przetwarzanie strumienia może odbywać się szybko, a czasem jednocześnie, co często jest pożądane, gdy shadery są używane do grafiki trójwymiarowej (3D).

INNE JĘZYKI

Czy ten artykuł był pomocny? Dzięki za opinie Dzięki za opinie

Jak możemy pomóc? Jak możemy pomóc?