ニュース
GeForce GTX 1080の同時マルチプロジェクションがもたらすディスプレイ革命
(2016/5/19 06:00)
PC Watchではこれまで2回に渡って、GeForce GTX 1080の特徴を紹介してきた。1つは3Dレンダリング周りの改善で、もう1つは(GeForce GTX 1080でなくとも使えるのだが)3Dゲーム内において自由な視点で“写真”が撮れるAnsel機能だ。本稿では、18日に開かれた製品説明会でのNick Stam氏の解説を交え、これまで紹介していなかったそのほかの特徴について解説する。
ディスプレイの革命をもたらす「Simultaneous Multi-Projection」
3台のディスプレイによるサラウンド環境で3Dゲームをプレイしているユーザーなら、誰もが一度は体験したことがあると思う。没入感や見やすさを高めるために左右の2台のディスプレイを自分に向けて内側に“折り曲げる”のだが、折り曲げたところでそのディスプレイに写った3Dオブジェクトの角度が変わるわけではないので、端に行けば行くほど伸びた映像となり、物理的なパースペクティブ(遠近感)が正しくなくなる。
立体的な3Dのオブジェクトをディスプレイという平面に“投影”する時に、GPUはラスタライザを使って処理するのだが、これまでのラスタライザだと1つの固定された平面の枠からしか見ることができない。カメラで言えば、思いっきり広角端に振った時に撮った1枚の写真である。
しかしディスプレイを3枚内側に向けて置くということは、それぞれの3つの角度に向けてカメラが撮った写真を並べるということだ。つまり3つの視点から3Dオブジェクトを見ることになる。これを従来のラスタライザで実行しようとすると、それぞれの視点向けにポリゴン頂点を演算し直す必要があり、特にテッセレーションを使ったジオメトリが複雑なシーンでは、極めて非効率的だった。
そこでNVIDIAは「Simultaneous Multi-Projection」(同時マルチプロジェクション:以下SMP)と呼ばれる機能を実装した。SMPを利用すれば、ジオメトリを演算し直すことなく、最大16視点を設定できる。この機能は出力段の「PolyMorph Engine」に内蔵され、4.0という新しいバージョンとなった。
もちろんソフトウェアでの対応が必要になるが、このSMPにより、3枚のディスプレイによるサラウンド環境で、左右のディスプレイのパースペクティブを正すことができるようになったわけだ。
また、VRにおいては、左右両目の映像は単純に軸をずらしただけのもののため、SMPの採用により先述の冗長のジオメトリ演算を削除でき、シングルパスで両目の映像がレンダリングできるようになった。同社はこれを「シングルパスステレオ」と呼んでいる。
さらにVRにおいては、多くのヘッドセットで、目のすぐ近くにあるディスプレイを見えるようにするためにレンズによる補正が入っているのだが、レンズの補正による歪みが生じるため、端の映像を逆に歪ませる。これにより画素数が削られることになる。例えば従来のGPUでは、Oculus Rift向けに片目あたり210万画素の画像を生成していたが、実際に表示されるのは110万画素程度であり、約100万画素が捨てられていた。
そこでGeForce GTX 1080ではSMPの仕組みを使い、歪みを考慮した投影角度に合わせて、片目あたり4つの視点を設定してラスタライズをする。こうすることで出力画素数は140万画素と、最終的な110万画素に近づけることができるようになり、捨てられる画素を減らし無駄を抑えることができるようになった。NVIDIAはこの仕組みを「レンズマッチドシェーディング」と呼んでいる。
結果的に、VR時はシングルパスステレオによってジオメトリのスループットが2倍となり、レンズマッチドシェーディングによってピクセルのスループットが1.5倍となった。つまりSMPこそが、GeForce GTX 1080が従来のGeForce GTX TITAN Xと比較して、VR性能を2倍以上向上させられた“カラクリ”なのだ。
HDRディスプレイへの対応
HDRをサポートするBT.2020色域では人間が認識できる色の75%をカバーする。また、HDRディスプレイは1,000cd/平方m以上の輝度や、10,000:1のコントラスト比を実現すると言われている。
GeForce GTX 1080では、12bitカラーやBT.2020への準拠、HDMI 2.0bへの対応(10/12bitで4K HDRをサポート)、4K@60Hz 10/12bit HEVCのデコード、4K@60Hz 10b HEVCのエンコード、そしてHDRメタデータ転送が可能なDisplayPort 1.4(ただ現段階では認証を通ったわけではなく、あくまでも準備完了段階)への対応を果たした。
ちなみにHDR対応エンコーダの搭載により、Tegra Xを搭載したコンソールゲーム機「SHIELD」に対しHDRでストリーミングを流すことも可能となった。これによってHDR対応のPCゲームを、SHIELDを通してHDR対応のTVに出力してプレイできるようになった。
3Dゲームについては、多くのゲームでは既に内部で16bit対応が行なわれているため、HDRへ対応済みとも言えるのだが、レンダリング時にSDRに精度を落として出力をしていた。HDRで出力するためにはレンダラーを作り直す必要がある。NVIDIAではAPIとドライバのサポートを各ベンダーに提供しており、HDR対応のタイトルももうすぐ出てくるという。
なお、DisplayPort 1.4レディとなったことで、4K/120Hzのサポート、DisplayPort 1.3×2で最大7,680×4,320ドット@60Hzのサポートなどを実現した。このほかビデオ周りでは、4K@60Hz 2ストリームのH.264および同HEVCエンコード、4K@120Hz H.264および同HEVC、VP9のデコードなどが新たにサポートされた。
GPGPUの改善
DirectX 12では、GPGPUをより活用したワークロードが増えるとしているが、従来のMaxwellではCPUのリソースを静的に割り当てることしかできなかった。例えばグラフィックスの処理に60%、汎用演算処理に40%のリソースを割り当てた場合、例えグラフィックスの処理が先に終わってリソースに空きが生まれたとしても、汎用演算は40%しかリソース占有できなかった。
GeForce GTX 1080ではこの問題を解決するために、ダイナミックロードバランシング機能を搭載し、空いたリソースをすぐに別の処理に割り当てることができるようになった。
加えて、プリエンプション機能も大幅に強化された。プリエンプションとは、あるタスクが実行されている最中に、別の優先度の高いタスクが発生した場合、現在実行中のタスクを中断して状態を保存、優先度の高いタスクを実行し、それが終わってから再度中断していたタスクを継続実行する機能だ。
GeForce GTX 1080では、グラフィックスのプリエンプションはピクセル単位で行なうことができる。例えば三角形をラスタライズしている途中でも、ピクセル単位でいつでもほかのタスクに切り替えられる。この切り替えは100μs以内に行なわれるという。
一方、DirectX 12の演算プリエンプションはスレッドレベルで可能。1つのスレッドの実行が終われば、100μs以内にほかのスレッドを実行できる。さらにCUDAによる演算タスクでは、命令単位でプリエンプションが可能。いずれにしても、粒度が非常に細かいレベルでプリエンプションできるわけだ。
この機能はVRの非同期タイムワープにおいては重要だ。これまでのNVIDIA GPUではタスクの切り替えに時間を要していたため、ディスプレイがリフレッシュするタイミングの直前で非同期タイムワープをGPUに演算させようとすると、切り替え時間分の余裕を見越してタスクの実行を終える必要があった。しかしGeForce GTX 1080ではほぼいつでも100μs単位で切り替えができるようになったため、非同期タイムワープが来るギリギリのタイミングまでほかのタスクを実行することができるようになった。
性能を最大限に引き出す「GPU Boost 3.0」
最後に、動的オーバークロックをするGPU Boostの挙動について紹介したい。これまでGPU Boost 2.0では、電圧に対するクロックは単純に比例していた。つまりクロックのオフセットしか設定できなかった。これでは、例えとある電圧ポイントにおいてより高いクロックを実際到達できていたとしても無視され、その分の性能が無駄になっていた。
具体的に例を挙げてみよう。例えば1Vで1GHz、1.1Vで1.1GHz駆動できるGPUがあったとする。これまでのGPU Boost 2.0では単純に比例するので、その間の1.05Vは1.05GHzで、1.07Vは1.07GHzで駆動していた。しかし、実際には1.05Vで1.06GHzを実現できるかもしれないし、1.07Vで1.09GHzを達成できたかもしれない。GPU Boost 2.0ではこの“ヘッドルーム”が無駄となっていた。
そこでGPU Boost 3.0では、1.05Vで1.06GHz、1.07Vで1.09GHz駆動を設定できるようにし、この問題を解決した。ちなみに現時点ではEVGAが開発した「Precision XOC」が対応しているが、まだGeForce GTX 1080自体がリリースされていないため、UIは暫定的で日々変化している状態だという。
ちなみにGeForce GTX 1080は、1年前は1,325MHzでしか動作しなかったそうだが、GPU内部のパスの最適化を継続的に行なったことで、全てのパスで1,733MHzの動作を達成した。これについてNick氏も“職人技だ”と誇ってみせた。
なお、SLIブリッジについては、発表会では新たな情報が得られたので記しておこう。既報の通り、GeForce GTX 1080で一般的なSLIブリッジを使った場合2,560×1,440ドット@60Hzまで、NVIDIA純正のLED付きブリッジでは4Kまで、HBブリッジを使った場合はサラウンド環境や5K解像度を“推奨”としている。“必須”ではなく“推奨”としているのは、市場に出回っている一般的なSLIブリッジの種類や品質のバラつきが大きいため。例えばフレキケーブルタイプで品質が悪い場合、400MHzに制限されるが、品質が良いブリッジを使った場合、NVIDIA純正のLEDブリッジでなくとも650MHzで駆動できる。NVIDIAはSLIブリッジ個々について検証できないため、“推奨”表記となっているのだ。
さらに言うと、HB BRIDGEになんら複雑な機構が入っているわけではないため、例えばフレキケーブルタイプのブリッジでも、2本同時に接続すればDual-link SLIモードとなり、品質が良ければ650MHz駆動できる。HBブリッジは、あくまでも確実にその動作が可能であるという、品質が確保された製品という位置付けだ。