はてなキーワード: 「京」とは
最初に言っておくと、増田はSCEが嫌いな方でPS3もVitaも持っていない。
そんな増田だが、PlayStation4発表でのハードウェアに対する誤解の数々を見てちょっとばかり怒りを覚えたので少し書いておく
いきなり「何が違うんだ?」と思う人や「何も違わないだろ?」と言う人も居るかも知れない。
だが後半を語る上でもこれは重要な話なので省略しないでおく。
最近のPCは当たり前のように64bitのメモリ空間を扱えるようになった。
この増田を読んでる人でも64bit OSを使っている人は少なくないはずだ。
これをもたらしたのは、x86 CPUを作ったIntelではなくx86互換CPUを作っていたAMDである。
じゃあIntelは何をしていたのかと言うと、64bit CPUを作っていた。x86を完全に捨てて。
Intelは「IA-64」という64bit CPUを開発して商品も出していたが、これは現在ではほぼ完全に消えている。
確かにIA-64は64bitをネイティブで扱えて「x86の古臭い負債」が全く無かった。しかし、現実世界はx86で作られた既存のソフトウェアを求めたのだ。ゲーム業界でも似たような話を聞いた気もする。
それに対して、AMDは「64bitを扱えるx86」を作ってしまった。これが「AMD64」であり、現在業界標準としてx86-64と呼ばれているものである。
知っての通り、x86-64は現在のIntel CPUでも対応している。AMDが作った命令を使わされる事になったIntelは何を思っただろうか。逆に、これまでIntelの命令を使ってきたAMDは何を思っていたのだろう。
PS3に搭載されていたCellは、非x86でスカラプロセッサのPowerPC CPU(PPE)と、複数のベクトルプロセッサSPEを組み合わせたヘテロジニアス(非対称)プロセッサだった。(スカラ、ベクトルについてはググろう)
スカラプロセッサが得意な処理、ベクトルプロセッサが得意な処理を両方とも高速に実行できる。それがCellの目指した「夢」だった。
スカラプロセッサとベクトルプロセッサのプログラム最適化は全く別の概念で、プログラマーにとっては野球とサッカーを同時にやらされるような物である。
しかも、スカラプロセッサとベクトルプロセッサの間でデータの交換もある。野球とサッカーのキャッチボールて。
スーパーコンピュータ「京」もスカラとベクトルの合わせ業で池田某氏に何度も叩かれるほどの超絶難産だった事は記憶に新し…いっけ?
それが原因でPS3の性能を最大限に引き出したソフトはほとんど存在せず、こともあろうにXbox360とのマルチソフトが溢れる結果となった。(ちなみに増田は360も持ってないのでエルシャダイをプレイ出来ていない、問題だ)
それに対し、PCの世界ではPS3・360が発売してしばらく後に新たなヘテロジニアスコンピューティングが生まれていた。
CPUに比べて進化が止まらないGPUをベクトルプロセッサの代わりとして使う試みだ。
GPUはスパコン用のベクトルプロセッサやCellのSPEと違い、最近のどのPCにも搭載されているので量産効果で割安というメリットがある。
DirectXのバージョンも2桁に突入し機能が増えるにつれて、「もうこれで計算すれば良いんじゃね?」となったわけだ。
結論から言うとこの試みは無茶苦茶ヒットした。近年開発されたTOP500スパコンでGPUが使われていないものを探すのが難しくなってきたし、
最近はPhotoshopなんかの比較的身近なツールもGPUコンピューティングに対応してきてヌルヌル動くようになっている。
しかし、そんなGPUにも欠点はある。「CPU・メモリから絶望的に遠い」のだ。
IBMが発明しMS-DOS・Windowsが動くことで爆発的に普及した今のPCは、GPUを外付けにすること前提で設計されていた。
DirectXやOpenGLのような例外を除いて、基本的に現代のOSはCPUとメインメモリでソフトを動かすように出来ている。
GPUも、一旦メインメモリ上でGPUのRAMに載せるためのデータを生成し、CPUから「GPU動かすよー」という命令を出さなければ動かせないのだ。
これはGPUにとって致命的すぎる欠点だった。これが原因で、遅さを跳ね返せる最新のミドルレンジ・ハイエンドのGPUでなければ逆にCPUより遅くなってしまうケースばかりだ。
現実的な理由で始まったGPUコンピューティングがぶち当たった現実的な壁である。
このGPUの欠点を克服する方法について、AMDはかなり前(少なくともGPUコンピューティングが流行るより前の2007年以前)から取り組んでいた。
GPUコンピューティングが遅いのはCPUから物理的に遠いため命令を送る時間が掛かり、メモリの扱いも異なるせいである。
CPUからGPUに命令を送る遅延を無くし、CPUのメモリとGPUのメモリを交換する時間も減らせばGPUコンピューティングのデメリットは消え失せる。
夢のある話だ。
しかし、AMDには発想と設計技術はあったがカネと製造技術はIntelと比べて絶望的に劣っていたため、
初めてのCPUとGPUを統合したプロセッサはIntelに先を越されてしまった。(IntelのGPUが絶望的に遅いからって実質出てないなんて言っちゃダメだ)
これにはAMDもかなり堪えただろう。けれどもAMDは戦略を曲げなかった。
IntelのGPUが絶望的に遅いのでほとんど意味は無かったが、少なくとも前世代のIntel GPUに比べると格段に実効性能が上がっていたのだ。CPUとGPUを近付ける統合には間違いなく意味があったということである。
AMDはCPUとGPUを同じチップにするだけでは無く、メモリ「アドレス空間」も一緒にする道を目指した。
こうなるとCPUの使っているメモリがGPUから直接扱え、GPUの使っているメモリがCPUから直接扱えるようになる。
これが実現するとCPUとGPUが完全なヘテロジニアスコンピュータに一歩近付くのだ。
2011年にやっとAMD初めてのCPU+GPUであるAPUを出せたが、メモリアドレス空間はまだ別々だった。
2012年になってもメモリ空間は別々のままだったが、AMDはARM(iPhoneやAndroidやWindows Phoneに載っているARMである)と合同でHSA(ヘテロジニアス・システム・アーキテクチャ)を推進すると発表した。
世の中の現実的な人々は笑った。「アーキテクチャだけを作ってもハードとソフトが出てこないんじゃ話になりませんよ」と。
同じ2012年、AMDは2013年中にHSAの第1世代製品を出すとだけ発表し2012年は終わった。
そして2013年2月21日(米国時間20日)、Sony Computer EntertainmentはPlayStation 4を発表した。
Cellはコケてしまったので載らない事は誰もが知っていたが、載っているハードウェアに一部の人が驚いた。
―HSAである。PC用のHSA対応APUがまだ正式発表されていない中で、なんとHSAを載せてきた。(2013年末発売だから当たり前だというツッコミは止めろ!)
CPUはx86-64のJaguar 8コア(ちなみにPC向けJaguarは4コアまでだ)、GPUはRadeon HD 7800相当でPS3と違いガチで1.8TFLOPS(理論上1秒間に計1.8兆個の小数点を含む計算を実行可能)のスペックを持つ代物だ。
このCPUとGPUは8GBのGDDR5メモリを共有して動作する。8GBと聞くと最近のPCから考えると少なく聞こえるかも知れないが、(わたしのメモリは16GBです)
GDDR5とはGPUの描画計算を速く済ませるために作られた超高速メモリであり、ご家庭のDDR3メモリとは比べ物にならない速さが出せる。
実際の所PS4がHSA対応かは正式発表されていないのだが、PC向けJaguarはHSA対応と発表されており、SCEもPS4をAPU(CPU+GPU)と呼んでいてこの変態メモリ構成とすると、発売までにクッタリでスペックダウンしない限りHSA確定と見て良いはずだ。
また、PlayStationはこれまで一度もx86系CPUを採用した事が無く、これが最初(で最g)のx86採用機となる。
Intelが初代Xbox(Celeron搭載)であっさり諦めたx86のゲーム機市場制圧の夢を、AMDが思いもよらぬ形で果たしたのだ。
これまでPCでしか発売されてこなかったDiabloが、x86-64のPS4向けに初めてコンシューマ版を発表した事もx86-64の採用が決してつまらない事ではなかった証だろう。(Diabloと戦うハメになるサードの方々にとっては非常につまらないが)
CPUとGPUの”フュージョン”…(HSAは以前はFusionと呼ばれていた。そういえばドラゴンボールの映画も今年やな…)
AMDが長年の間見てきた夢が、PS4で初めて現実世界に現れることになる。(※ただし次世代XboxもHSA採用でPS4より先に発売したりしない世界線に限る)
こんな馬鹿らしいほど夢が詰まったマシンを「x86搭載だからPCみたいで夢が無い」という一言で切り捨ててしまう人に増田は絶望した。
でも、それってユーザーの夢にどう繋がるの?
性能の引き出し易さがPS3と比べて格段に良くなるのでPS3版ラストレムナントや人喰いの大鷲トリコのような非情な現実が減る。以上。