はじめに
「GPUとは何か?」と質問をされて、正確に答えられる人は割と少ないと思います。特に、GPUという言葉をきちんと知っていると正確に答えるためには一言では表現できないでしょう。「GPU」と「いわゆるGPU」を分けて説明する必要があるからです。
GPUのはじまり
もともとGPUとは、1999年8月31日NVIDIAがGeForce 256を発表※1する際に「CPU : Central Processing Unit」という言葉に対する位置づけで、自社のグラフィックチップを指す言葉として「GPU : Graphics Processing Unit」を提唱したことに始まります。すなわち、GPUはNVIDIAのマーケティング用語として生まれたのです。
GeForce 256では、Direct3Dのパイプライン処理※2のうち、従来CPUが担っていた前工程(ワールド座標転換、視点座標転換、投影座標転換、クリッピング)にあたる部分をも担う機能を追加しました。これにより、必要な情報をCPUから入れるだけで、3Dグラフィックス処理を(ほぼ)グラフィックチップ側で行うことができるようになりました。※3
この状況を指して、GeForce 256はグラフィックを処理するユニットとして独立したプロセッサーであると表明し「GPU : Graphics Processing Unit」を提唱したわけです。
これに対してATI Technologies(当時、現AMD : Advanced Micro Devices)は「VPU : Visual Processing Unit」を提唱しました※4が、当時の市場ではNVIDIAが圧倒的優位であり、まったく広まることなく、そのうちATI Technologies自身もGPUと呼ぶように方向転換していきました。
GPUという言葉の一人歩き
前述のようにNVIDIAは一定の機能を持ったチップをGPUと提唱したわけですが、パソコン上においてGPUの規定を外れるグラフィックチップがほとんどなくなった時点で、グラフィックを表示するためのチップを総称してGPUと呼ぶ、「GPU」という言葉の拡大利用=一人歩きが始まりました。
従来のグラフィックチップは、3Dアクセラレーター、グラフィックアクセラレーター、ウィンドウアクセラレーター、グラフィックディスプレイコントローラー、ビデオディスプレイプロセッサーなど、各社各様の呼び方がなされていましたが、だんだんGPUという言葉に飲み込まれていきました。
これが「いわゆるGPU」という、広義のGPUの指し示す範囲です。
今のGPUという言葉
この広義のGPUという言葉の使い方は、個人的には誤用だと思っています。なぜなら従来のチップと異なる要素を備えたチップをあえて呼び分けて「GPU」と提唱した言葉に対して、まるで違うものを混ぜてしまっているからです。例えば「CPU」はそれ以前の単純なロジックチップとは異なるからこそ「CPU」なわけですが、せっかく呼び分けた「CPU」という言葉に対して単なるロジックチップまで「CPU」と呼び始めたら、それは誤用だと誰しもが思うはずなのです。
実際にはそのような誤用が広まらずに済んでいるのは、技術者だけが分類について触れる言葉(ここではCPU)なのか、一般利用者※5も触れる言葉(ここではGPU)なのか、といったところで知識の壁による線引きができているのだろうと思っています。
「GPU」という言葉がが誤用されてしまっている一番の原因は「CPU」の入出力がデータでしかなく、一般人の目に触れることがないのに対して、GPUの出力は画像ということで、画像が出るものは全部GPUだと一般利用者に思われてしまったところにあるのでしょう。
まとめ
今回は「GPU」という言葉は、グラフィックを出力するすべてのチップではなく、定義がある言葉なのだということを説明したいと思い書いてみました。
広義の「GPU」という言葉、すなわち「いわゆるGPU」が広まってしまっている現状では、ある種の薀蓄やトリビア的な情報となっているかもしれませんが、少しでも多くの方に定義がある言葉などだということが伝わればうれしいと思います。
- 日本語のページは日付がおかしなことになっていますので、英語のGeForce 256のページから日付を引用します:
The World’s First GPU
August 31, 1999 marked the introduction of the graphics processing unit (GPU) for the PC industry—the NVIDIA GeForce 256.
- ここではDirectX6系に含まれる固定パイプラインを指しています。
- 実際にアプリケーションがこの機能を使用できるようになるまでには、DirectX 7のリリースを待つ必要がありました。
- PC WatchのATIがDirectX 9に対応したVPU「RADEON 9700」をリリース ~メインストリーム向けのRADEON 9000も同時発表の記事から該当箇所を引用します:
「RADEON 9700は、グラフィックス、イメージ、そしてビデオのすべてを処理するVisual Processing Unit、つまりはVPUだ」。
RADEON 9700を披露したATI Technologiesのジョウェル・スッキデル-ウェブ氏は、RADEON 9700を「VPU」という新しいカテゴリの製品であると説明した。
ちなみに、3DLabs(当時、現ZiiLABS)が先にVPUの名称を使用してはいましたが、ATIの使用趣旨とは異なるものでした。当時は3DLabsとATIが提携状態にあったことから、共通のVPUという呼称を用いたという説もありますが、3DLabsが2002年3月3日に発表したVPUの定義である「VPA : Visual Processing Architecture」にRadeon 9700は準拠していないため、提携とはまったく無関係であるというのが真相でしょう。
- この一般利用者には、グラフィックチップの開発あるいはグラフィックチップを使用したソフトウェアを開発するなどの正しい知識を持った専門家以外のすべての人を含みます。例えばいわゆる自作ユーザー、自作系ライター、あるいはゲーマーなどに分類される中の多くの人々です。