テクノ雑学
第54回 GPUって何だ? パソコンをもっと高速・高精細に −デュアルGPU−
パソコンの性能を向上させる手法のひとつに、「デュアル化」があります。
読んで字のごとく、特定のパーツを2個使い、直列もしくは並列的に同時動作させることで、そのパーツが担当する処理の速度、もしくは処理能力を向上させる技術です。
パソコンパーツ/デバイスのデュアル化
特定のパーツ/デバイスの性能が2倍に向上するまでには、長い時間がかかりますし、開発のためのコストも膨大なものになります。それをただ待つのではなく、現状のパーツ/デバイスを複数個“束ねて”使い、システム上で仮想的に1個と見なして扱えるようにすれば、比較的低コストで大きな性能向上幅が得られるのではないか? と発想した人がいたわけです。
デュアル化は、すでにいくつかの分野で実用化されています。その代表は、1台のパソコンに2個のCPUを搭載して処理速度を高める「デュアルCPU」でしょう。現在では、ひとつのCPUパッケージの中に2個のCPUコア(おもな計算を行なう、CPUの中核回路)を搭載する「デュアルコアCPU」も登場しています。
【 参考 】
パソコン高速化の決定打? −デュアルコアCPUのしくみ−
ハードディスクドライブも、「ディスクアレイ」と呼ばれる装置を用いることで、複数台を束ねて扱えるようになります。最も単純な構成は、ディスクアレイに収めた複数台のハードディスク全体を1台のドライブと見なして扱う「スパニング」もしくは「JBOD(Just a Bunch Of Disks ただのディスクの束)」と呼ばれるものです。たとえば容量250ギガバイトのハードディスクを4台使ってスパニングを行なえば、見かけ上、容量1テラバイトの大容量ドライブが出現します。
より高度な技術が、RAID(Redundant Arrays of Inexpensive Disks)です。RAIDは、どちらかというとディスクアレイを用いることでシステム全体の信頼性を確保することが主目的の技術なのですが、数多くある動作モード(レベル)の中には、データの読み書きを高速化させる技術も含まれています。
CPUのデュアル/デュアルコア化やRAIDによって、それらのパーツとしての性能は、単純に倍にとはいきませんが、最高で1.8倍程度にまで高めることができます。
余談ですが、スパニングやRAIDの場合、束ねるハードディスクの数は2台に留まらないので、「マルチ化」と呼ぶべきかもしれません。CPUにしても、サーバー用途などでは4個、8個といった「マルチCPU」環境も珍しくはないのです。
GPUとは?
そして昨年、同様の技術がとうとうグラフィックスの分野にも導入されました。NVIDIA社では「SLI(Scalable Line Interconnect)」、ATI Technologies社では「CrossFire」と呼ぶ、「デュアルGPU」環境です。
「GPU(Graphics Processing Unit)」という言葉は、まだ耳慣れないかもしれませんね。従来「グラフィックス(ビデオ)チップ」と呼ばれていたLSIが、飛躍的に高機能化してきたことで使われるようになってきました。
パソコン用のOSがCUI(Character-based User Interface 情報を文字で表示するユーザーインタフェース)のMS-DOSだった頃、画面上に表示するものは基本的に文字と線程度。当時のグラフィックスチップに相当する回路は、OSやアプリケーションソフトが送り出すデジタル情報を受け取り、画面描画用の信号へ変換する程度の役割しか与えられていませんでした。
ところがOSがGUI(Graphical User Interface アイコンなどのグラフィックを多用した画面構成のユーザーインタフェース)のWindowsに進化したことで、一画面あたりに表示しなければならない情報量が飛躍的に増えます。加えて、画面上でウィンドウやアイコンを移動させる場合など、リアルタイムに画面を書き換える処理が日常的に要求されるようになり、高い描画能力が必要になりました。また、Windows用アプリケーションソフトでは、CADやゲームなど3D描画を用いるものも増えました。
そこで登場したのが、CPUに代わってレンダリング(座標や色などのデータを、計算によって画像化すること)などの処理を行なう「グラフィックスアクセラレータ」です。その後、特に3Dゲームの分野でグラフィックスの高精細化や高解像度化、表現の微細化、多様化が進んだことで、それまでCPUが担当していた3Dデータ→2D画像化の座標変換や、さまざまな画像効果などもグラフィックスアクセラレータが担当するようになりました。こうなると、もはや「プロセッサ」的な存在ということで、GPUと呼ばれるようになったのです。
デュアルGPUシステムの動作
デュアルGPU環境は、その名の通り1台のパソコンに2枚のグラフィックスボードを接続し、画面描画を分散して処理させる技術です。デュアル/デュアルコアCPUが複数の「スレッド」を分担して処理するのと同じような理屈で、画面描画の処理速度を高める、もしくはより高精細な描画を実現するものと考えればいいでしょう。
デュアルGPUシステムの動作そのものは、実は比較的単純なものです。ここではNVIDIAのSLIを例に説明します。
SLIの動作モードは、大きくふたつに分かれます。まず、奇数画面をGPU1が、偶数画面をGPU2が描画するモードで、NVIDIAでは「AFR(Alternate Frame Rendering)」モードと呼んでいます。もうひとつは、GPU1が画面の上から、GPU2が下から、同時に描画する「SFR(Split Frame Rendering)」モードです。ちなみにATIのCrossFireの場合、1画面を32ドット×32ドットずつ交互に描画するモードも採用されています。
資料提供 : 4Gamer.net
いずれのモードも、GPU1個あたりの画面描画に関する処理の負担が大幅に軽減されるため、高速に描画できるわけですね。もしくは、従来と同じ分の処理を行なうなら、より高精細な描画が可能になるわけです。
どちらのモードを使うかは、グラフィックスボードのドライバーソフトに登録されている対応ゲームの場合、より適していると判断されるモードが自動選択されます。非登録ゲームの場合はAFRが選択されます。
ただし、デュアルGPUにも得意な処理と不得意な処理があります。得意な処理については、GPU1個の場合と比較して、1.9倍程度高速に描画できますが、ほとんど効果のない処理もあります。すべてのプログラムが高速に動作するわけではない、ということは覚えておいてください。
フルハイビジョンも快適に
今年になって、NVIDIAは4個のGPUを使う新しいSLI技術「Quad SLI」を発表、対応パソコンもすでに市販されています。デュアルGPUから、「マルチGPU」の時代に突入したわけです。デュアルGPUは、おもに高精細・高解像度なグラフィックスを持つ3Dゲームを快適にプレイするための技術ですが、Quad SLIともなると、フルハイビジョン(1920×1080ドット)、もしくはそれ以上の解像度でも高精細なグラフィックス表示を、非常に高速に行なえるだけの実力を備えています。
また、最近のハイエンドGPUは非常に高い処理能力を持っています。演算能力を表す指標のひとつ「FLOPS」やメモリ帯域において、上級CPUを超える性能を持つものも珍しくありません。その強力な演算能力を活かし、従来はCPUが担当していた画面描画に関する処理を代わりに行なったり、動画のエンコードといった負荷の大きい処理を支援する、といった用途も視野に入れられています。
SLIやCrossFireは、市販のパソコンでも「PCI Express x16」と呼ばれる内部拡張ボード用スロットを2基備えているモデルなら対応可能です。ただし、一般的な市販パソコンは「チップセット」が内蔵するグラフィックス機能を使っているものが多く、その分の電力消費に応じた容量の電源ユニットしか搭載していないことがネックです。SLIやCrossFire対応の高性能グラフィックスボードは消費電力が大きく、それを2枚もさしてしまうと、電源の容量が不足してしまって動作が不安定になったり、起動しない、といったトラブルが起こりがちです。デュアルGPU環境にチャレンジする場合は、そのあたりの情報をしっかり集めてからにしてください。
著者プロフィール:松田勇治(マツダユウジ)
1964年東京都出身。青山学院大学法学部卒業。在学中よりフリーランスライター/エディターとして活動。
卒業後、雑誌編集部勤務を経て独立。現在は日経WinPC誌、日経ベストPCデジタル誌などに執筆。
著書/共著書/監修書
「手にとるようにWindows用語がわかる本」「手にとるようにパソコン用語がわかる本 2004年版」(かんき出版)
「PC自作の鉄則!2006」「記録型DVD完全マスター2003」「買う!録る!楽しむ!HDD&DVDレコーダー」など(いずれも日経BP社)
TDKは磁性技術で世界をリードする総合電子部品メーカーです