Coelacanth's Dream

ROP は何の略

GPU のグラフィック性能を推し量る際の指標として用いられる ROP
その役割はともかく、何の略称かはあんまり気にされなかったりする。

ROP の役割

ROP は GPU のレンダリングパイプライン最終段に位置し、結果をピクセルに対応させ、メモリ(フレームバッファ) に書き出す役割を持つ。
他にも、MSAAやEQAAといったアンチエイリアス処理を行なうための処理ユニットも ROP に含まれる。

AMD GCNアーキテクチャ GPU では効率を良くするために ROP 相当のユニットを L2cache経由でメモリコントローラにアクセス、書き出しを行なう。
NVIDIA GPU も似た構成を取っている。

この構成によって、製品の差別化のため搭載メモリチップ数を減らす(=一部メモリコントローラを無効化)と、合わせて L2cache、ROP も一部無効化される。
それだけではないとも思うが、このことが性能に関係する印象を強め、指標に用いられやすくなったのかもしれない。
しかし、AMD RDNAアーキテクチャ GPU からは新たに増設された L1cache に ROP を直接接続するようになったため、メモリコントローラを一部無効化しても ROP をそれに応じて無効化しなくてもいいようになった。
実際に、メモリコントローラを一部無効化し、フル構成となる AMD Radeon RX 5700シリーズ の 256-bit から 192-bit に減った RX 5600シリーズ の ROP数は変わらず 64基となっている。
そのため、AMD RDNAアーキテクチャ GPU においては、ROP数を指標に使うにはズレが生じることを考慮しなければいけない。
(ただ L2cache は無効化される。また、する必要がなくとも今後製品差別化のため ROP を無効化することがあり得るかもしれない。)

ROP のフルネーム

ROP のフルネームはあやふやだ。
Render OutPut または Render OutPut Unit とされたり、Raster OPeration の略だったり、少し変わって Raster Operations Pipeline だったり、またさらに少し変えた Raster Operation Processor だったりする。

NVIDIA の各資料から見るに、2004年時点では Raster OPeration 12Raster OPeration Unit 3の両方を使っていた。

2007年の NVIDIA Teslaブランドの立ち上げ後4に、2008年の HotChips19 に合わせて発表したと思われる資料では Raster Operation Processor の略としている。5

2007年の NVIDIA GeForce 8800 の資料では先の Raster Operation ProcessorRaster Operation Pipeline の両方を使っている。6
何だかややこしいが、Raster Operation Processor は ROPのユニット全体を示し、Raster Operation Pipeline は ROP内部のパイプラインを示しているのだろうか?
この2つは ROP の名称としてはしっくり来るためか、公式以外のメディアやユーザーコミュニティ内で ROP を解説する際はどちらかが名称に使われることが多い。

2015年には Render Output Unit の略としている。7
Raster から離れたのは、ROP とは別に、それより前のレンダリングパイプライン段でラスタライザ処理を行なう Raster Unit /Raster Engine があるため混同を避けたかったのだろう。

そして、今日では ROP は記号と化している。
NVIDIA-Turing-Architecture-Whitepaper.pdf を見ても、わざわざ ROP が何の略かは説明していない。
2015年時点でも、Render Output Unit としているのに、ROP Unit と書いていたりと、既に記号化が進んでいた。
これは AMD もそうで、そも AMD GPU は ROP 4基相当の RB(Render Backend)を単位としているのに、
公式のスペックで相当ROP数を出すのは、競合との比較のためという意味合いがあるのではないかと思う。

Intel はどうなのかというと、 Slice Common が ROP としての機能を含んでおり、その中で結果をメモリ出力するユニットを PBE(Picel Back-End) と呼んでいる。8
関連して、わかりやすさを重視してか、NVIDIA、AMDも ROP を Pixel Engine /Pixel Unit としている資料もある。910

個人的にもその方がまだ直感的にわかりやすいと思うが、今後 Intel が本格的に ハイパフォーマンスGPU へ進出すれば、
その時は競合 NVIDIA、AMD を意識し、Intel もまた記号として ROP を使い始めるかもしれない。

参考リンク