|
会場:ソニー・ピクチャー・スタジオ
今回の発表で明らかになったことは非常に多い反面、根幹となるプレゼンテーションのほとんどがNVIDIAに丸投げされたり、スペックキーワードがこれまでの一般ゲームファンにとってはなじみのないものであったりと、直感的にはわかりづらい部分も多かったように思う。
そこで、今回は、PS3の発表会に示されたキーワードや映像についての基本解説を行なってみたいと思う。 【プレイステーション 3 スペック一覧】
■ PS3のCELLプロセッサは1PPE+7SPEとなった! まず、CPUとなるCELLプロセッサについて。詳しくはこちらを参照して欲しいが、ここでも簡単に触れておこう。
CELLプロセッサはアップルコンピュータのPower Mac G5のCPUであるPowerPC970とソフトウェア互換のあるPPE(Power Processor Element)と、複数個の128ビットSIMD型RISCプロセッサのSPE(Synergistic Processor Element)からなる。
スペック表における「PowerPC-Base Core」というのがPPEで、その下の「1VMX Vector Unit」とは、PPEに接続された128ビットのSIM命令用コプロセッサだ。VMX(Vector Multimedia Extension)はPentiumにおけるSSEとかMMXのようなもの……と考えればいい。 動作クロックは3.2GHz。CELLプロセッサは実験室レベルで4.5GHz以上で動作しているとのことだが、歩留まりや筐体の熱設計の観点、そしてもしかするとXbox 360が3.2GHzとなったことなどを配慮して、この値が決められたのだと思われる。このクロックで後述するSPEも駆動される。 PPEはメインプロセッサともいうべき存在で、ソニーはこれを「CELLにおける指揮者」と表現しており、PPEの仕事はOSを動かすこと、アプリケーションの“本流部”を動かすこと、そして後述するSPEの動作を制御することだ。 スペック表にある「512kB L2 CACHE」はPPE用のキャッシュメモリで、命令、データの区別のない統合型のL2キャッシュメモリとなっている。ここには記載されていないが、これ以外に、命令用L1キャッシュが32kB、データ用L1キャッシュも32kB搭載される。 スペック表にならぶ「7x~」はPS3に採用されるCELLプロセッサではSPEが7個稼働するということを意味している。もともと2月の半導体学会「ISSCC」にて発表されたCELLプロセッサはSPEが8個あったはずなのだが、PS3では7個に減っているのだ。これは何か。 理由は意外に単純で、「CELLプロセッサの歩留まり率」を上げるためだ。チップ内には実体としてSPEは確かに8基分あるが、その1個が製造上の問題で動作しなくてもPS3のCPUとして利用できる……というわけだ。たとえばだが、8基のSPEがフル動作するCELLプロセッサはワークステーション用、7基動作できるものはPS3用、それ以下はAV家電(デジタルレコーダ、カーナビ等)用……といったように選別利用するシナリオも考えられる。 さて、そもそも、このSPEとはなにものなのか。 SPEは、(x、y、z、w)のような四要素の32ビット浮動小数点実数からなるベクトル演算に特化したプロセッサで、3Dグラフィックス関連のジオメトリ演算や、映像、音声などのエンコード、デコード処理を得意とする。これまでのCPUにもコプロセッサという形で特殊演算機能を付加したものが存在したが、CELLにおけるSPEは、それ単体が独立して動作できる一人前のプロセッサである点が特徴だ。大量のデータ処理をPPEとは独立に並行して行なえるのがSPE……という理解でいいだろう。 スペック表の「7×128b 128 SIMD GPRs」とは、1個のSPEあたり、128本の128ビット長の汎用レジスタ(General Purpose Register)を持つ……という意味だ。これはかなり大量のパラメータを扱うプログラムでもレジスタリネーミングやメモリへのデータ待避なしに高速にプログラムを実行できる仕組みのための工夫で、他に類を見ないSPEのアーキテクチャならではの特徴ともいえる。 「7×256kB SRAM for SPE」は「SPEのキャッシュメモリ」……ではない。この256kBのSRAMメモリ空間はSPEにとってのメインメモリとなる領域なのだ。これには「Local Store(LS)」という名前が付けられている。 少々複雑な話になるが、概略だけ解説しよう。詳しくはこちらを参照のこと。 スペック表にもあるがPS3にはXDR DRAMにて256MBのグローバルなメインメモリ空間が提供される。これにはPPEも、SPEも、MMU(Memory Management Unit:メモリアドレス変換器)とDMA(Direct Memory Access:メモリを独自のタイミングでやりとりできるユニット)を介してアクセス可能なのだが、特異事項としてSPEは、それ自身のソフトウェアの実行と、それに伴うデータの取り扱いに際しては、この256kBのローカルメモリ空間にメインメモリからダウンロードして実行する仕組みを取るのだ。
まぁ、一種の制限みたいなもの……ともいえるが、SPEはもともと「入れられたデータを遅延なく処理してはき出すストリームプロセッサ」的なコンセプトでデザインされたために、最高性能を出すには「このスタイルが最適」という判断がなされたと見るべきだろう。
■ PS3のグラフィックスチップ「RSX」のパイプラインは固定式
今回の発表では、NVIDIAのCEO兼社長Jen-Hsun Huang氏、自らが壇上に立って、PS3のGPU「RSX」について説明を行なったが、あまり内部アーキテクチャについては触れず、数値スペックの公表に留まっている。 スペック表にもあるように、RSXの動作クロックは550MHz。現行GPUとしてはPC用も含めて、トップレベルの動作クロックだ。
1サイクルあたり136シェーダオペレーション、トータルピーク性能は1.8TFLOPSということで、これはNVIDIAの現行GPUの最上位モデル「GeForce680oUltra」を2枚刺し動作させるSLIモード時パフォーマンスの2.5倍に相当するのだという。このあたりのアーキテクチャとパフォーマンスにまつわる話はもう少し取材を進めてから考察したい。
Xbox 360の想定しているHD解像度は1,280x720ドットだが、これに対して、PS3は1,920x1,080ドットのフルHDに対応していることを強調した。しかし、後でも触れるが256MBのビデオメモリ、128ビットビデオメモリバス、たかだか22.4GB/secのビデオメモリ帯域で1,920x1,080ドットのフルフィーチャーのレンダリングは性能的にもビデオメモリ的にはギリギリな線だろう。PS3でも、大半のタイトルは1,280x720ドットベースになるものと予想される。 そして、さらに興味深いのは、グラフィックスをレンダリングする実行ユニットともいうべきプログラマブルシェーダのパイプラインが、頂点シェーダ用とピクセルシェーダ用で固定設計となっているという点だ。 Xbox 360のGPUは、関係者への追加取材により、GPU負荷に応じて、48個ある共有シェーダユニットを、動的に頂点シェーダパイプラインとピクセルシェーダパイプラインに振り分ける仕組みを採用していることがわかっている。この点に置いて、ATIとNVIDIAの設計思想の違いが現われていて面白い。 また、今回の発表で「メインメモリとグラフィックスメモリが256MBずつ」、それも「メインメモリがRambusの3.2GHzデータレートのXDR DRAM」、「ビデオメモリが1.4GHzデータレート(700MHz駆動)GDDR3 SDRAM」ということが明らかにされた。つまり、PS3では、CPUに256MB、GPU(グラフィックスプロセッサ)に256MBのメモリが接続されるというようなイメージだ。これもライバルのXbox 360がCPUとGPUで512MBのGDDR3 SDRAMメモリを共有して使うUMA(統合メモリ方式)を採用しているのとはずいぶんと設計方針が違う。
メモリ帯域はメインメモリが25.6GB/sec、ビデオメモリが22.4GB/sec。この値は3.2GHz×64ビット幅、1.4GHz×128ビット幅の計算から求まった値だ。ビデオメモリはPC用ハイエンドGPUとはことなり、128ビット接続ということだ。
■ PS3がサポートするハイダイナミックレンジにレンダリングとは?
従来のリアルタイムレンダリングシステムでは、いわゆる32ビットカラーでのレンダリングを基本としていたが、PS3ではこれを128ビットカラーまでをサポートするということだ。 32ビットカラーではα(透明度)、RGB(赤緑青)がそれぞれ8ビット整数で表現されていた色表現だったが、PS3のRSXの128ビットカラーでは、α、RGBがそれぞれ、32ビット浮動小数点実数までサポートされるということだ。こうした表現幅の大きいレンダリング方式を「ハイダイナミックレンジ(HDR)レンダリング」という。PS3、Xbox 360の2つの次世代機はともにレンダリングシステムはHDRレンダリングに対応することになる。 「128ビットカラー?? そんな色が出るディスプレイやテレビなんてないでしょう?」という意見もごもっとも。HDRレンダリングは、あくまでレンダリングをハイダイナミックレンジで行なうのであって、最終的な映像表示は従来の32ビットカラー(実際には24ビットの1,677万色)に落とし込んで行なわれる。よってテレビは今までのものを使う。 それでは何のために「ハイダイナミックレンジ」にレンダリングするのか。 近代の3Dゲームグラフィックスのレンダリングは複数のテクスチャを適用したり、陰影処理を多段階に組み合わせて行なうため、表現幅が狭いと誤差が蓄積され正しい結果にならない。HDレンダリングの目的の一つはピクセル単位の陰影処理の演算精度の向上にある。 そして、もう一つ、現実世界の光景と同じ様にハイダイナミックレンジにレンダリングを行ない、このシーンを任意の輝度レンジで映像の見え方を変更できるというメリットがある。これは、カメラでいうところのシャッタースピードを変えたり露出を変えたりといった動作に相当し、人間であれば目の瞳の大きさを変えることに相当する。 暗いシーンで、だんだん目が慣れて明るく見えてくる様子や、トンネルから外に出たときのように、目のくらむようなまぶしいシーンがだんだんと適切に見えてきたり、といった表現ができるようになる。あるいは、過度に明るいシーンの各箇所に“ぼやかし”を後処理で付加して、カメラのレンズ内反射によるフレア現象や、まつ毛による光の回折によって発生する光が溢れ出して見えるような表現もリアルに行なえるようになる。
なお、128ビットのHDRレンダリングは3Dゲーム用途としてはいささかオーバースペックであり、実際にゲームに活用されるのは64ビットで十分という意見が有力だ。128ビットHDRレンダリングも少々はったりがかましてあると考えるべきだろう。 ■ 面下拡散(Subsurface Scattering)とは? 今回の発表会で、東洋系の女性が踊るリアルタイムデモをNVIDIAが公開し、このキャラクタの肌表現に面下散乱(Subsurface Scattering)のテクノロジーを実装したと説明した。 面下散乱とは、光が吸収されて減衰したり反射したりするという単純な反射モデルだけでなく、光が表面に入り込みその中で散乱して外に出てくるという、非常に複雑な反射モデルをシミュレートしたものだ。
なるほど、今回のデモでは、光が裏に回ると肉厚の薄い耳殻から光が漏れてきたり、女性の顔のアップでも鼻の穴が単に真っ黒ではなく、肉をほんのすこし透過した光が赤い陰影を作り出したりしている。
今回のデモの技法は映像を見る限り、本連載前回の「SplinterCell:Chaos Theory」編でも触れた、影生成技法の一つ、シャドウマップ技法の拡張発展系で実装しているようだ。これの基本アイディアをNVIDIAが論文として出している。 光源を仮の視点としてシーンの深度情報(奥行き情報)をテクスチャなどにレンダリングし、そのシーンの遮蔽構造分布に相当する「シャドウマップ」を生成。ここまでは影生成の時と同じ。 最終的なシーンのレンダリング時には、各ピクセル描画時に、そのピクセルが光源から遮蔽されてどのくらいの距離にあるのか(つまりどのくらいの厚さのものが光を遮っているのか)をシャドウマップを参照しながら求めつつ描画していく。薄ければ光が透過するような陰影で色を付ければいい。 原理としては単純な分、問題も多いが、リアルタイムに動いて変形するキャラクタにも利用できるため、そのビジュアル効果は大きい。 今回、公開されたデモでは、内部に仕込まれた骨の影までがうっすらと見えるようになっており、その骨同士が重なった描写まで見て取れる。また、このデモはハイダイナミックレンジレンダリングも適用されており、光の溢れ出し表現なども見て取れる。
今までは、そこまでやっていたら重くて仕方なかったのだが、PS3のRSXでは、ゲーム内のキャラクタ描写にここまでパワーが使える……ということなのだろう。
□ソニー・コンピュータエンタテインメントのホームページ http://www.scei.co.jp/ □関連情報 【3月16日】3DゲームファンのためのPS3発表直前予習講座 ~PS3はOpenGL/ES“2.0”ベース http://game.watch.impress.co.jp/docs/20050316/ps3.htm (2005年5月17日) [Reported by トライゼット西川善司]
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp Copyright (c)2005 Impress Corporation, an Impress Group company. All rights reserved. |
|