何をするにしても、セルオートマトンの次の状態の計算は、オートマトン内のセルよりも多くの計算を要求します。したがって、一定の時間を得るには、セルと同じ数のコンピューティングコアが必要です。
GPUのこれらの数は現在最大で数千ですが、次の状態の計算は非常に単純であるため、結果はIOバウンドであると予想されます。つまり、データの移動が必要です(適切な近似ではない場合、実装の効率が悪いか、アーキテクチャが適切ではありませんが、それは非常に驚くべきことです)。
FPGAの場合、質問はより難しく、おそらく利用可能なメモリと計算ユニットの組み合わせに依存します。私があまり遠くないなら、あなたはすべてのユニットをビジーに保つのに十分なメモリを持っていませんし、外部メモリに依存しているならGPUと同じ席にいます、メモリ帯域幅は制限要因になりますGPUに勝る利点がないという結論に至った場合は驚かれることでしょう。(私はFPGAで作業してきましたが、それは数年前でしたが、適切な組み合わせのFPGAモデルが存在する可能性があることに注意してください)。
ASICはより柔軟性があります。シストリックを簡単に実装できます(ただし、双方向データフローでは、一部のシストリックは通常単方向データフローに制限されます)。各物理セルは1つの論理セルです。メモリのビットと、次の状態を計算するために必要なロジック物理的な隣人であるように、論理的な隣人です。あなたは明らかに一定の時間領域にいます。所有しているハードマクロによっては、少しわかりにくくなり、いくつかの論理的なマクロを再グループ化する物理セルを持つ方がよい場合があります。目的は、1つのチップで行われることを最大化することです。つまり、通信の必要性がセルの数に比例するとすぐに、チップの外部との通信を最小化して、帯域幅が制限されます。はい、つまり、各ステップのすべてのセルを見る必要がある場合、あなたはおそらくGPUよりもそれほど良くはありません。(完全なカスタムでは、より良い統合、つまりチップあたりのセル数の増加のみ)。
要約:-すべての中間状態を確認したい場合、GPUが最も効果的なアプローチです-そうでない場合、ASICがより良い何かを持っていることを正当化するボリュームが必要です。持っている