HOT CHIPS 20 のゼロ日目、チュートリアルに参加してきました。Stanfordは素晴しいですね。
It’s the Memory, Stupid
マルチコアになって何がたいへんかというと、実はメモリなんだ! というのが斬新でした。 コアが増えるにつれメモリへのアクセスがどっと混むので、帯域が問題になる。マルチコア時代にはレイテンシを下げないといけなくて、メニーコアになるにつれスループットがネックになってくる。 キャッシュの階層を増やすなどして、レイテンシを隠す。3D スタッキングのようなアクロバティックな技術をつかってコアとメモリの距離を近づけてあげる。
CUDAというNVIDIAの並列プログラミングモデルでは、メモリ階層のことをかなり意識して書かないと、ちゃんと速くならない。データがGPUコアの中にあるのか、スクラッチパッドにあるのか、コア間の共有メモリにあるのか、それともDRAMにあるのか。 いかにも最高性能を目指すゲームプログラミング向きだなーと。それに対して Larrabee ではコンパイラやライブラリにそうした泥臭い作業を任せる。プログラマはロジックとアルゴリズムに集中できる。ただし性能がどうなるかは分かりませんね。
とにかくStanfordのキャンパスはすばらしかった。広くて重厚ですね。 なんとかして入れないものか。


日本語