週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

2012年03月22日 22時15分更新

 GPUメーカーのNVIDIAは、これまで開発コードネーム“Kepler(ケプラー)”で知られてきた新アーキテクチャーに基づくデスクトップPC向けGPU『GeForce GTX680』を発表した。

 Keplerは、2009年に発表された前世代アーキテクチャー“Fermi(ファーミもしくはフェルミ)”に続く新アーキテクチャーで、従来向けの製品に比べて効率が大きく改善されているのが特徴となっている。NVIDIAによれば、新しいGeForce GTX680は熱設計消費電力と呼ばれるピーク時電力も195Wと前世代の250Wに比べて大幅に下げており、前世代のハイエンドとなるGeForce GTX580の3枚分と同じ性能を1枚で実現可能だという。本レポートではそうしたGeForce GTX680の詳細に関して説明していきたい。

●28nmプロセスルールで製造することでダイサイズが大幅に小さくなった

 以下はKeplerベースのGTX680と前世代のアーキテクチャーとなるFermiベースの『GeForce GTX580』を比較した表になる。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

 最大の違いはダイサイズにある。“ダイ”とは半導体のチップそのもののことで、そのサイズは半導体の性能や製造コスト、消費電力に大きな影響を与える。非常に大まかにいえばダイサイズが大きければ大きいほど性能は上がることになるが、その代わりに製造コストや消費電力が上がってしまうため、半導体メーカーにとってはほどほどのサイズに押さえることは重要になる(ただし、この比較は同じ製造プロセスルールを利用している場合に限る。詳しくは後述)。

 GTX580では529平方mmという、PC向けの半導体としては例外的に大きなダイサイズになっていた。この529平方mmがどれぐらい大きいかと言えば、クアッドコアの第2世代のコアi CPU(サンディブリッジ)が216平方mmであるので、ざっとその2.5倍になる。これに対して、KeplerベースのGTX680は、294平方mmとサンディブリッジの1.4倍程度に収まっており、極端に大きいダイという訳ではないことがこれからわかるだろう。

 このように、NVIDIAがKeplerでダイサイズを抑えることに成功した理由は2つある。ひとつは製造プロセスルールを微細化したことだ。製造プロセスルールとは、半導体が製造されるときに利用される技術の世代のことを示しており、数字はトランジスタと呼ばれる半導体の最小単位(厳密に言えばゲートと呼ばれる部分)のサイズを示している。よく聞く65nm、45nm、32nmと呼ばれる単位がそれで、Fermi世代では40nmを利用していたのだが、Keplerでは28nmとより微細化された製造プロセスルールを利用して製造されるのだ。

 半導体の内部にはトランジスタと呼ばれる回路が実装されており、この回路が高速に動作することで様々な演算が行えるようになっている。製造プロセスルールを微細化すると、ひとつのチップに実装できるトランジスタの数を増やすことが可能になる。例えば、40nm/512平方mmの『GeForce GTX480』では30億個のトランジスタが内蔵されているが、28nm/294平方mmと小さなGTX680では35億個とチップサイズは小さくなっているのにトランジスタの数はやや増えているのだ。大まかにいえば、半導体の性能はトランジスタ数に比例して向上するので、チップサイズは小さいながらもGTX680の方が性能がやや向上していると考えることができるのだ。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

Keplerのダイ写真。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

Keplerのブロック図。8つのSMという構造はFermiからのアーキテクチャーを受け継いでいる。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

こちらはFermiのブロック図、基本的な構造はFermiからKeplerへと受け継がれていることがよくわかる。

●2倍の電力効率を実現した内部アーキテクチャー

 Keplerで改善されているのは、製造技術だけではない。マイクロアーキテクチャーと呼ばれる内部構造にも手を入れている。ただし、今回KeplerにおいてNVIDIAは成功を収めたFermiの特徴を受け継ぎ、それを改善するというアプローチをとっている。

 NVIDIAはFermi世代において、演算単位として“SM(Streaming Multiprocessor)”と呼ばれる仕組みを用意した。32個の演算コア(NVIDIAではCUDA Coreと呼んでいる)をもち、L1キャッシュ、テクスチャーユニット、ポリモーフエンジンといった3D演算に必要なエンジンを内蔵させ、それをひとつの単位としてGPUに内蔵させる仕組みをとっていた。例えば、GTX480ではこのSMが8つ内蔵されているが、下位モデルでは4つもしくは2つと、製品によって切り分けてきた。Keplerでも基本的なこのアーキテクチャーは継続している。GTX680でもこのSMが8つ内蔵されていることに違いはないが、大きな違いとしてSMの構成が改良されている(SMXと区別して呼ばれる)。すでに述べたように、従来製品では1つのSMに32個の演算器が内蔵されていたのだが、新製品では192個の演算器が内蔵される構成になっている。

 これだけみれば単純に増えただけとなるが、実際にはそうではない。従来のFermiでは内蔵演算器がGPUコアの倍速で動作していたのだが、Keplerでは等速となりクロック周波数そのものは低くなっている。その代わりに演算器を増やして性能の低下を補っているのだ。こうしたアプローチをとることで、同じ性能であればKeplerの消費電力はFermi世代の半分になっているのだという。つまり電力あたりの性能が2倍に向上しているのがKepler世代の大きな特徴なのだ。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

新しいSMことSMXの構造。FermiのSMでは32CUDAコアだったものが、KeplerのSMXでは192CUDAコアとなっている。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

KeplerではCUDAコアのクロックスピードはCPUと等速になっている。

●GPU Boostにより動作クロックを動的にコントロール

 このほかにも、GTX680にはいくつかの強化点がある。1つは“GPU Boost”と呼ばれるGPUの公式オーバークロック機能だ。一言でいってしまえば、インテルが同社のCPUに採用しているような“ターボブーストテクノロジー”のGPU版といった機能だ。TDPと呼ばれるピーク時消費電力の範囲内で、消費電力がそれより下回っている場合には、自動でクロック周波数と電圧を引き上げて性能を向上させる。

 具体的にいえば、GPUの内部演算器は常にすべてが使われている訳ではない。アプリケーションの種類によっては、GPUの演算器の一部しか使っていない状態で、この場合には消費電力はリミットよりもはるかに下の状態にある。そこで、こうした時にGPUのクロック周波数と電圧を動的に上げることで性能向上させようというのが基本的な考え方だ。なお、もともとGPUの演算器を限界まで使っているようなアプリケーションの場合には、消費電力がリミットに達しているので、GPU Boostによるクロックアップ効果は期待できない。あくまで消費電力がリミットに達していない場合のみに有効となる。

 なお、このGPU Boostにより、GPUスペックのクロック周波数には2つのクロックが書かれることになる。1つはベースクロックで、これが従来のGPUのクロック周波数に相当する。そしてもう1つがブーストクロックで、これはGPU Boostが有効の場合の上限クロックになる。なお、GPU Boostのクロック周波数は、消費電力や温度などといったパラメータにより動的に変化する。つまり、2つのボードがあった場合、同じ製品であってもブーストクロックは異なるということだ。俗に言うと“当たり”と“ハズレ”があるということだ。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

GPU Boostの概念。アプリケーションによっては左端のようにGPUのすべての演算ユニットが利用されていないので、電力には余裕があり、その部分を利用してクロックと電圧を引き上げる。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

クロック周波数は動的に引き上げられ、消費電力やGPUの温度などにより変動する。

新世代GPU『GeForce GTX680』を徹底解剖【笠原一輝氏寄稿】

どれだけ引き上げられるかはアプリケーションにより異なる。

(2ページ目に続く)
 

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

本記事はアフィリエイトプログラムによる収益を得ている場合があります