AMDのGPU

ここまで、主にNVIDIAのGPUの作りを見てきた。その理由は、NVIDIAの方が公開されている資料が多く、構造に関する情報が多いことと、SIMTなどの新しい流れを取り入れるのが早いことによる。

しかし、1つのメーカーだけを取り上げるのは、不公平であるので、他のメーカーのGPUについても分かる範囲で、紹介して行こう。まず、最初は、RadeonやFireProブランドで、市場でNVIDIAと激しい戦いを繰り広げているAMDのGPUを取り上げる。

AMDのGPUはPCやワークステーションだけでなく、ソニーのPlayStation 4やMicrosoftのXboxゲームコンソールにも使われており、これらのマシンを加えると、NVIDIAのGPUより多くのAMD GPUが出回っているのではないかと思われる。また、現在では、スマートフォンのSoCにもGPUが内蔵されており、その台数はPCやゲームコンソールを大きく上回っているので、スマートフォン用SoCのトップメーカーであるQualcommのAdreno GPUの方が数が多いのかもしれない。

AMDは、元々はCPUメーカーでGPUは手掛けていなかったのであるが、2006年7月にカナダのGPU大手であったATI Technologiesを約54億ドルで買収すると発表した。当時の為替レートは115円くらいであるので、約6000億円に相当する。

現在では、もっと巨額の買収も多いので、驚くにはあたらないかも知れないが、必ずしも懐事情が良いとは言えないAMDにとっては巨額の出費で、大丈夫かという声も聞かれたのであるが、10年後の現在では、グラフィックスはCPUと一体化してきており、良い買収であったと言える。

3Dのグラフィックス処理では、張りぼてのように、多数の平面のパネルでモデルを表現する。この時、ビル、車、人などはそれぞれローカルの座標で表現しておき、シーン全体を構成する時に、サイズを合わせ、位置や向きを正しくして、共通のグローバル座標の中に配置する。 この各モデルのローカル座標をグローバル座標に変換するためには、図8.1に示すような、拡大/縮小、平行移動、回転などを行う座標変換マトリクスを掛ける。

図8.1 平行移動のマトリクス(上)とZ軸のまわりに回転するマトリクス(下)の例

1つの頂点座標の変換には16回の積和演算が必要であり、1つの画面には、何千、何万もの頂点があるので、多くの計算が必要になる。そして、カーレースなどのゲーム画面を滑らかに動かすためには、これらを毎秒60回~80回計算する必要がある。