はい、できます。いいえ、4.X ハードウェアは必要ありません。フラグメント シェーダー (フロー制御付き)、フレームバッファー オブジェクト、および浮動小数点テクスチャ サポートが必要です。
データを 2D テクスチャにエンコードする必要があります。
各行の最初のピクセルに「状態変数」を格納し、残りのデータを残りのピクセルにエンコードします。言うまでもなく、浮動小数点テクスチャ形式を使用することをお勧めします。
2 つのフレームバッファを使用し、最初の列で「状態変数」を更新するフラグメント シェーダを使用してループ内でそれらを互いにレンダリングし、「現在」の別の列で必要な操作を実行します。無駄なリソースの量を減らすために、処理したい列にレンダリングを制限できます。NVidia OpenGL SDK の例には、データをテクスチャにエンコードし、シェーダーを使用して更新するという同様の方法で動作する「ライフ ゲーム」、「GDGPU 流体」、「GPU パーティクル」のデモがありました。
ただし、できるからといって、必ずやればいいというわけではなく、高速であることが保証されているわけでもありません。一部の GPU は、メモリ テクスチャ メモリの読み取り速度が非常に高い場合がありますが、計算速度は比較的遅く (逆も同様)、すべての GPU に物事を並列処理するための多くのコンベヤーがあるわけではありません。
また、アプリによっては、CUDA または OpenCL の方が適している場合があります。