(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();

Daily Archive: 7月 5, 2017

これからのGPU

並列化する流れはとまらない。

MCMのGPU

NVIDIAのリサーチサイトに掲載された論文に、MCM-GPUに関するものが公開された。
MCM-GPUとは、マルチチップモジュールのGPUの事で、つまりは1つのパッケージの中に複数のGPUを搭載し、それらを高速なインターコネクトで接続して並列してGPUを動作させるというものである。
CPUにも、複数のシリコンダイを一つのパッケージ内に搭載してマルチチップ化したものがあったが、それのGPU版というわけである。
このような方法が模索されている理由は、単純に現在のGPUが肥大化の一途を辿っているからであり、肥大化すれば当然歩留りも悪くなり、またコストも高くなってしまう。
しかし、小さなGPUを1つのパッケージ内に複数個搭載し、それらを繋いでしまえば、パッケージは大きくなるものの、シンプルに性能向上が望める。単純に言えば1チップの中でSLI処理をしようという事である。このマルチチップモジュールGPUを実現する為には、各GPUを接続するインターコネクトが重要な要素になるが、その為のバンド幅やキャッシュ構造なども最適化する必要があると言われている。
今回公開された論文には、それらの考察も行われているようだが、試算によるとストリーミングマルチプロセッサーを256基備えたMCM GPUでは、インターコネクトは768GB/s、メモリバンド幅は3TB/sという性能で、ストリーミングプロセッサ128基を備えたモノリシックGPUと比較して45.5%高速でかつSLIのようなマルチGPUと比較しても26.8%高い性能を実現できるとされている。まぁ、単純に2倍の性能向上にはならない、という事でもあるが。
それでも、ある意味GPUでムーアの法則を維持しようと思えば、今後はマルチチップモジュール化していく方向は避けられないのかもしれない。

物理的限界

NVIDIAのVolta世代のGPGPUボードである“Tesla V100”は、そのGPUサイズが815平方mmとなっていて、NVIDIA側としてもこれ以上大きなGPUを製造する事ができないと言っている。
実際、半導体を露光する際のフォトマスクサイズを考えれば、確かにこのTesla V100のサイズはほぼ限界と言っていいサイズになる。
という事は、単体でのGPUサイズではこれ以上大きなものを作れないワケで、それを製造可能にするには微細化プロセスが進まないといけない事になる。
微細化が進めば同一面積で搭載できるトランジスタ数は増える為、性能向上は望めるが、微細化が進まない場合はその時点で性能がアタマ打ちになる。
この流れはアーキテクチャの改良だけで性能が伸び悩む現在の他半導体と同じである。
CPUは、アーキテクチャの改良・更新で伸び悩む問題をマルチコア化で切り抜けた。IntelのCoreアーキテクチャがまさにそれである。
だが、もともとGPUはストリーミングプロセッサがマルチコアの集合体なので、今回のNVIDIAの方向性は、それらをさらにマルチチップ化するという方向性になる。
これで、一つのダイが小さくなっても、性能を稼ぐことができる、というワケである。
逆に言えば、Tesla V100のチップを複数個搭載して一つのパッケージに収めたとして、その複数のTesla V100を高速なインターコネクトで接続できれば、性能はさらに押し上げられるという事になる。まぁ、コストはバカ高くなると思うが。
どちらにしても、物理的限界を超えるための手法である事に違いは無い。

あとは各チップを接続するインターコネクトの速度が全てではないかと思う。
結局はココが遅いと性能は引き出せないのだから。

Desktop Version | Switch To Mobile Version