FPGAでPCIe接続可能なフルカスタムGPU「FuryGpu」が登場、レトロPCゲーを高解像度・高フレームレートでプレイ可能に
AMD(旧Xilinx)のZynq UltraScale+のFPGAに実装され、カスタム基板上に搭載されてPCIeでコンピューターと接続できるGPUが「FuryGpu」です。FuryGpuは1990年代半ばのハイエンドグラフィックカードと同等のハードウェア性能と、Windowsソフトウェアのドライバースタックをサポートしており、1990年代のゲームを高解像度・高フレームレートでレンダリングできるとのことです。
https://www.furygpu.com/
実際にFuryGpuを使って、1996年に発売されたid softwareのFPS「Quake」を720pでプレイしているところが以下のムービー。
FuryGpu Display and Audio Drivers work! - YouTube
開発者のディラン・バリー氏は、FuryGpuは詳しくいうと「典型的なタイル式ラスタライザー」だと述べています。ラスタライザーとは、点の座標とそれを結ぶ線で構成されるベクターイメージを、色付きの点の集まりとして表現されるラスターイメージに変換する、すなわちラスタライズする装置のことです。
バリー氏によれば、FuryGpuは効率的なグラフィックス処理を行うために、以下のような特徴を持っているとのこと。
タイル式のレンダリング:画面を小さなタイルに分割し、各タイルを並列に処理することで高速化を実現します。
パイプライン処理:各ステージ(コマンド解釈、頂点処理、プリミティブ組み立て、ラスタライズ)が並列に動作し、高いスループットを実現。
固定機能ユニット:専用のハードウェアユニットがそれぞれの処理を担当し、効率的な処理を可能にします。
グラフィックスコマンドはメモリ上のリストから読み込まれ、頂点データはシェーダーで変換されます。その後、グラフィックスプリミティブが組み立てられ、スクリーンタイル内に振り分けられます。最後に、4つのラスタライザーユニットが並列にタイルをレンダリングします。
以下はVulkanベースのFury GL APIを介してFuryGPUでレンダリングした三角形。
GPU Driver First Frames! - YouTube
バリー氏は、ソーシャルニュースサイトのHacker Newsにもコメントを寄せています。その中で、FuryGpuの開発プロジェクトは2021年8月22日から2年半以上かけていることを明らかにし、将来的に基板の回路図やレイアウト、各種ドライバーについての記事を公開する予定だと述べました。また、価格についても比較的安価であることが想定され、ハードウェアのベースに使われているKria SoMはPCIeコアを備えたZynq UltraScale+ FPGAを搭載しており、開発ボードでも1台当たり350ドル(約5万3000円)程度で入手できるそうです。
なお、バリー氏は「はっきり言っておきますが、FuryGpuはオモチャです」と述べており、あくまでも趣味の範囲で触るものであり、既存の商用GPUと競合するものではないことを強調しています。