ストリーム処理とは
ストリーム処理は、アプリケーションおよびハードウェアシステムの設計に使用できるコンピュータープログラミングおよびコンピューターエンジニアリングの概念です。 ストリーム処理を使用すると、データはストリームに編成され、ストリーム内のデータを操作するノードまたはプロセッサーに供給されます。その後、他のノードが操作できるようにデータがパスに沿って続きます。 ストリームの最後で、データはメモリに配置されるか、使用するためにエンドユーザーアプリケーションに渡されます。 ストリーム処理を使用しているシステムまたはアプリケーションは、ストリーム情報が1つ以上のソースによって一貫して生成されている場合に最も効果的に機能し、デジタル信号処理(DSP)、イメージングおよびグラフィックス、または高帯域幅ネットワークトラフィックに効果的です。 ストリーム処理の最も広く普及している実用的な用途は、グラフィックスハードウェアにストリームプロセッサが組み込まれ、頂点配列などの着信グラフィックスデータに対して複数の操作を実行するコンピューターグラフィックスカードの製造です。
ストリーム処理の基礎は、ストリームとしてのデータの概念を中心に展開します。 異なるソースから情報を描画したり、割り込みメカニズムからメッセージをインターセプトしたりする代わりに、何らかのプロセスによって情報がストリームと呼ばれる単一の行に照合されると、データストリームが形成されます。 データ要素は異なる可能性がありますが、ストリームは通常、連続して処理できる同じタイプの要素のブロックで構成されます。
ストリーム処理で使用されるプロセッサまたはノードは、ストリームを受け入れ、データに対して所定の操作を実行します。その後、データをさらに処理するために別のノードに渡すことができます。 効率を最大化するために、ノードは、高速化のためにレジスタとダイレクトメモリアクセス(DMA)を使用して、中央処理装置(CPU)に直接ロードおよび実行される小さな機能を対象としています。 ストリーム内の情報がスタンドアロンであり、単一ノードの操作の結果に依存しない場合、ストリームに対して複数の操作を同時に実行できます。また、非常に効果的な最適化を可能にするヒントをプログラムコンパイラに提供します。
一般的に、ストリーム処理は、カメラ、外部センサー、ネットワーク接続などのアプリケーションまたはデバイスによってデータが一貫して生成され、ストリームにプッシュされる状況に適したソリューションです。 多くのグラフィックカードは、ストリームプロセッサを使用して、グラフィックパイプラインを介して入力されるデータを、レンダリングされたラスタライズされた画像にすばやく変換します。 特定のグラフィックスカードには、カードのハードウェアに複数のプロセッサまたはノードが組み込まれているため、3次元(3D)グラフィックスにシェーダーを使用する場合に望ましいことが多いように、ストリーム処理を迅速かつ時には同時に行うことができます。