Streamprozessor
# Streamprozessor

Als Streamprozessor wird eine spezielle Art des Koprozessors bezeichnet und zugleich eine kleine skalare Recheneinheit, die in solchen Koprozessoren auftreten kann.

## Streamprozessor als Koprozessor

Als Streamprozessor wird ein Koprozessor bezeichnet, der Datenströme (engl. stream) verarbeiten kann. Die Verarbeitung zeichnet sich vor allem durch hohe Parallelisierung aus. Viele Anwendungen kommen aus dem Bereich des Hochleistungsrechnen.

Als Streamprozessor hatte ATI (inzwischen von AMD übernommen) zunächst einen Teil der X1x00-Serie vorgestellt. Dabei handelte es sich um Grafikkarten, die durch Anpassung der Treiber in die Lage versetzt wurden nicht nur Grafik zu rendern, sondern auch andere Datenströme zu verarbeiten. AMD nennt diese Art der Datenverarbeitung „Stream Computing“. Nvidia präsentierte ihrerseits mit der Einführung ihrer Unified-Shader-Architektur bei Grafikkarten auch Grafikprozessoren, die man als Streamprozessor einsetzen kann. Nvidia vermarktet das unter dem Begriff „CUDA“ (Compute Unified Device Architecture). AMD präsentierte ihrerseits auch eine Unified-Shader-Architektur. Weil die Unified Shader sehr viel flexibler in der Programmierung sind als die früheren Rendering-Pipelines, eignen sich diese Grafikprozessoren besonders gut für die Verarbeitung von diversen Datenströmen, also für deren Benutzung als Streamprozessoren.

## Streamprozessoren als (kleine) skalare Recheneinheiten

Skalare Recheneinheiten, die einzelne skalare Rechenoperationen an einem Datenstrom durchführen können, nennt man Streamprozessoren oder auch Streamverarbeitungseinheiten (engl.: Stream Processing Units). Einen Zusammenschluss solcher kleiner Streamprozessoren bzw. skalarer Recheneinheiten findet man in den Grafikprozessoren/Streamprozessoren die auf der Unified-Shader-Architektur aufbauen. Durch den Zusammenschluss von skalaren Recheneinheiten ist nicht nur Verarbeitung von skalaren Operationen, sondern auch Vektorverarbeitung möglich.

