2013年6月7日

GPGPUとしてのAPUの考察

GPGPUの課題としてCPUとGPUが遠い事、またまたメモリ空間も統合されておらず、双方ともデータフローに関わるボトルネックが性能を引き出す難しさの大きな原因になっています。 ここではGPGPUのボトルネックとインターコネクト、およびゲーム機であるPS4はGPGPU(APU)のプラットフォームレベルの実験機である側面、プラットフォームまでを含めての開発コミュニティの形成がAPU普及の鍵である、などの考察(?)をまとめました。
3
倒壊3rd🦐 @Lilium_vitro

1モジュール(2コア)Steamrollerコアと大型GPUのディスクリート用APUカードとか出てくるんじゃないかという予感。

2013-06-07 17:50:51
倒壊3rd🦐 @Lilium_vitro

Kaveriは3つのSteamrollerモジュール(6コア)とミドル・ロークラスのGPUをワンダイ統合して、さらにGDDRインターフェースを持ち、PCI-Explessカードとしても使用できるとのこと。 http://t.co/ADJaRFk5Gn

2013-06-07 17:56:58
倒壊3rd🦐 @Lilium_vitro

このことから考えれば、ディスクリートGPUにCPUが混載される前触れと思える。メモリ空間を統合した異種混合コンピューティングではCPUとGPUを遠くすることは望ましくない。APUが最も合理的なGPGPUになるだろうね。

2013-06-07 17:58:36
倒壊3rd🦐 @Lilium_vitro

CPUソケット用のAPUではCPU大きめのAPUの方が良いと思う。その点で3モジュール(6コア)CPU+GPUというのはCPU的APUというのは理にかなってる。

2013-06-07 18:00:19
倒壊3rd🦐 @Lilium_vitro

しかし、拡張カード用のAPUではGPUの比率を高めた方が良い気がする。1モジュール(2コア)程度のCPUに大型GPUを搭載し、384bitのGDDR5インターフェースを持つなどした方がいいように思える。演算密度を高める意味で。 でもそのバランスは、プログラムとの共進化なんだろうね

2013-06-07 18:03:20
倒壊3rd🦐 @Lilium_vitro

@204504bySE そしてPCIEカードとしても使用可能。もうこれは確実だね。NVIDIAも64bitARMコアを統合しようとしているようだし。

2013-06-07 18:04:06
倒壊3rd🦐 @Lilium_vitro

さて現在の、マルチソケットにおけるCPU間インターコネクトの速度は片方向あたり25GB/s程度だと思うけど、PCI-Expless 3.0x16では16GB/sになる。外部APUカードとメインAPUの間のやり取りする帯域としては、まだ少し足りないように思える。

2013-06-07 18:06:53
倒壊3rd🦐 @Lilium_vitro

CPUに比重を置いたメインAPUは128bitメインストリーム用と256bitのハイエンド用に分かれる気がする。あるいは、当面はCPU優位なので、ハイエンド系はCPUのみの構成もしばらく続きそうではあるけど。

2013-06-07 18:11:43
倒壊3rd🦐 @Lilium_vitro

構成としてはどれがいいのだろうね… ハイエンドCPU+外部APU(GPUメイン)がいいのか、 それともCPUとGPUそれぞれミドルハイクラスのを統合した大型メインAPU+外部APU(GPUメイン)がいいのか…

2013-06-07 18:15:06
倒壊3rd🦐 @Lilium_vitro

なぜ構成が問題になるかという事だけど、それはCPU(メインAPU)と外部GPU(外部APU)が遠く、それらを繋ぐPCI-Explessが帯域が相対的に細めで遅延もあるというところがあるから。

2013-06-07 18:17:45
倒壊3rd🦐 @Lilium_vitro

ようするにインターコネクトのスピードととレイテンシがGPGPUのボトルネックになるっていう事。

2013-06-07 18:18:37
倒壊3rd🦐 @Lilium_vitro

CPUとGPUをワンダイ統合しメモリ空間も共有とすることで、CPU-GPU間のやり取りは高速になる。しかし、拡張カードのAPUとマザーボードのAPUの間のインターコネクトは依然遅いままであるという事。

2013-06-07 18:19:50
倒壊3rd🦐 @Lilium_vitro

外部GPUがAPU化するという事は間違いない。しかしマザーのCPUはどの程度APU化するのかが見えない。当面はCPUの比率を高めた方が合理的といえるけども。

2013-06-07 18:21:46
倒壊3rd🦐 @Lilium_vitro

大型ハイエンドCPUと大型ハイエンドGPUのAPUでCPU用のHypertransportで繋ぐという事?

2013-06-07 18:22:49
倒壊3rd🦐 @Lilium_vitro

未来の先取りという点で、PS4のhUMAでメモリ空間を統合したAPUは最も美しい形だと思う。

2013-06-07 18:25:03
倒壊3rd🦐 @Lilium_vitro

IntelはCPUは強いけどGPUはAMDほどではない、NVIDIAはGPUは強いけどCPUはARM。x86CPUとGPUの両方で高パフォーマンスを出せるのはAMD。

2013-06-07 18:25:12
倒壊3rd🦐 @Lilium_vitro

技術的観点からみれば、AMDのAPUは最も美しい。

2013-06-07 18:27:07
倒壊3rd🦐 @Lilium_vitro

PS4は、せめてCPUがSteamroller2~4モジュール(4~8コア)だったらもっと性能的に素晴らしかったと思うけども。でもゲームコンソールであればJaguar8コアでも十分かしら。

2013-06-07 18:27:32
倒壊3rd🦐 @Lilium_vitro

ゲームエンジンはマルチスレッド化が進んでいるし、物理演算はGPUで実行可能だし、重い処理をGPUにオフロードできるなら、CPUはそれほど強力である必要もない。ゲーム機としては。

2013-06-07 18:29:11
倒壊3rd🦐 @Lilium_vitro

ただ、GPUにオフロードといっても、汎用機であるPCではなかなかこうはいかないだろうなと。CPU優位にせざるを得ない。まだAPUは始まったばかり。

2013-06-07 18:32:07
倒壊3rd🦐 @Lilium_vitro

さて、GPUがAPU化し、メモリ空間も統合されることでようやく柔軟でプログラムしやすいGPGPUができつつあるという事。GPGPUのプログラミングの敷居はぐっと下がるだろうね。そうしてやっと普及へと持ち込むことができる。

2013-06-07 18:37:20
倒壊3rd🦐 @Lilium_vitro

単体で技術的に優れているだけではだめなんだ。ソフトもハードも、そしてエンジニアも結びつける必要がある。プラットフォームであり、またコミュニティでもあるんだ。 プラットフォームとしての開発コミュニティを形成できなければデファクトスタンダード獲得は難しいだろうね。

2013-06-07 18:42:11
倒壊3rd🦐 @Lilium_vitro

そんな中、AMDの完成されたAPUがPS4という形で、現時点で完成したプラットフォームとして世間に普及させていくというのは、かなり上手い戦略だと思う。PCはしがらみで政治的・技術的両面で制約が多いが、ゲーム機ならベンダーがやりたいようにやれるからだ。

2013-06-07 18:44:05
倒壊3rd🦐 @Lilium_vitro

汎用機としてのしがらみを持つPC、自由なコンピュータ実験機としての側面を持つゲームコンソール。

2013-06-07 18:44:49
倒壊3rd🦐 @Lilium_vitro

ゲーム機は自由なコンピュータ実験機である。しかも、実験機であるにもかかわらず、開発プラットフォームまで含めて包括的に大規模なコミュニティを作れる(上手くいけば)というところに戦略的な旨みがある。

2013-06-07 18:47:46
残りを読む(1)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?