NVIDIAの新GPUがかなりがんばってる件

マルチポスト元→http://exth.net/~tgbt/wordpress/2009/10/03/2583/


【後藤弘茂のWeekly海外ニュース】NVIDIAが次世代GPUアーキテクチャ「Fermi」を発表 - PC Watch
これは壮大なコンピューティング革命の始まりに過ぎない (1/3) - ITmedia PC USER


Fermiが発表された.性能が倍になったとかいうのは十分に想定の範囲だとして,アーキテクチャの変更が結構すごいと思った.
CUDAが発表されて製品が出始めた頃に,「CUDAというアーキテクチャを出してきたのはいいけど,これっていつまでもつんだ?GPUの世代交代で崩れたりしない?」とか思ったり話したりしたんだけど,今回のFermiがいきなりがんばりすぎてると思う.

  • プロセッサの数の割り振り方ーつまりStreamingMultiprocessor(SM)あたりのプロセッサ(今までの用語ではSP,今回からはCUDA core)数が8から32に増えた
  • SMごとに持つ共有メモリのサイズが16KBから64KBに増えた(SMあたりSP数が4倍になったので妥当だけど)

この辺の数字はチューニングの面ですげえ重要な値だった.今後,単純に増やせばいいのかというときっとそうでもない.なんせ真の実行単位であるWARPのスレッド数が32のままだから……って,あれ?今まではSP数8にWARP32だから4命令ごとに考えるチューニングが必要だったんだけど,Fermiは32の32だからまとめて考える必要が無い……???
ま,これは実際に製品が出る頃にガイドが出るのを待たないとわからないか.


他に気になる変化としては,

  • メモリアドレスの管理方法がフラットになった
  • スレッドエンジンの拡張によってカーネル実行が柔軟になった

なんてのがある.
個人的にはこの辺が凄く気になっていて重要だと思っている.プログラムの最適化支援とかミドルウェア作成とかに興味がある身としては,凄くいじくり回したい.
それと同時に,今までとどう変わるのか,どう変えてコーディングする必要があるのかが不安で仕方がない.なにより,これでユーザ側に大きな変化が必要となると,さらに次の世代のCUDAでまた変わるんじゃないかという疑問・懸念・問題が出てくる.研究の種としては楽しいけど,実際アプリケーションを作って動かす側としてはツライよね.


OpenCLが出てGPGPUも少し固まってきたかなというイメージは一応あったけど,やっぱり水物だぁと再確認した.これを踏まえて研究計画練らないといかん.なんせ,半年頑張って新しい機能を作ったところで,ベンダーに「半年後のGPUではそれもっとスマートにネイティブサポートするよ」なんて言われたら面白くない.これだからGPUの研究は笑えないし楽しいんだぜ.