2009年10月31日土曜日

三角点とかけまして…

タモリ倶楽部で測量の三角点の特集やってる。こんなんで番組になるからすげーw

三等三角点がでてきたとき、BGMはメタリカのエンターサンドマンがいきなり流れた。

三等三角点でメタル?!あ、ひょっとして、エンターサンドマンの"さん"と、三角点のさんだから?
きづかね~w

2009年10月30日金曜日

ぱいなんとか

これちょっと面白そうだ。
http://mathema.tician.de/software/pycuda

いろいろ変化のあるCUDAにのっかっていて、pythonがいろいろバージョンあったり、scipyとかnumpyとかいろいろあったりかぶってたりするから、なんかちょっと不安はないわけではないがためしに遊びでやるのは面白そうだ。

手元ですげーでかい行列の計算がふと必要になって、ぽぽーんと実行なんて気軽にできたらすごい、かっこいい、しびれる、憧れる。


そういえば、pyNNなんてのもある。こっちはほとんど人伝えに聞いたことしかない。pyNESTなんてのもある。ふと検索したらpyNEURONなんてのもあった。すげー、なんでもあるなあ。

cudaでカーネル呼び出すのってそんなにコスト高くないと聞いたような?気がするから、インタープリタでその都度呼んで実行させるのもありなのかな。大きい行列計算なんかそれで十分成り立つんだろうな。ニューロンの計算はちょっとどうかなあ。

こういうのの科学技術計算向けの手引書とか書いたら絶対いいと思うんだけどないよな~。いい本とかまとめサイトできたら、結構matlabからごっそり移行しちゃいそう。

2009年10月25日日曜日

ぐるぐる回る妄想

今日は、GPUの行く末についての妄想をしよう。

GPUのアーキテクチャの変化や、淘汰は、当たり前だが、結局、市場原理にゆだねられる。

現在、その市場というのは、大きくはゲーム用途向けの市場であり、これが1年、2年で、他の用途に激変することはないだろう。

だから、少なくとも数年は、ゲーム向用途をターゲットととして、進化せざる終えないだろう。

最近のゲーム分野の先端の話を聞くと、次のトレンドはよりプログラマブルなGPU、より一層汎用化されたGPUが望まれているみたいだ。でも、それはあくまでも先端のゲームエンジンを作るところの話で、それがどこまで一般的に広まっていくかはわからない。

結局、このトレンドがひろまるのかどうかと、ひろまるとしたらいつなのかが、次のGPUのアーキテクチャの命運を決めていくんじゃないだろうか。

じゃあ、果たして、そのトレンドが広まるんだろうか?そのトレンド変化があまりにも飛躍したものだと、開発者側がみんなついていけなくて、なかなか移行は進みにくい。

そのトレンドの変化というのは、ある部分ではすでに体験している開発者がいるんじゃないだろうかと思う。それは、PS3のCellのSPEで、GPUの肩代わりをさせているような使い方をしている人たちだ。Cellでやるのはいろいろ面倒くささがあるが、ある部分は自分で好きにできる汎用性も享受しているはずである。

PS3でCellを使ったからといって、直接、開発者が汎用化されたGPUアーキテクチャに対応できるようになるわけではないが、"ああ、SPEでやったことはあるわ"見たいなことがあれば、少なくとも新しいことをやるということに対しての心理的障壁はかなりさがるんじゃないだろうか。

だから、まわりまわって考えると、PS3がこれから十分に売れて、市場も拡大し、PS3のSPEで、プログラマブルなGPU的なものを扱う経験をする開発者が増えることが、近い将来の、汎用的なGPUの受け入れをしやすくすることになるんじゃないだろうか。

はーい、大分、妄想に妄想が重なってきました。

じゃあ、PS3はこれから売れて、市場シェア一位を奪還することができるだろうかということが、結構重要になってくるじゃないだろうか。そういう市場動向という意味で、やっぱり、結局は消費者の選択が未来の決定に関わってくるというわけだ。

現在、かなりPS3は売れ始めているようで、年末はキラーソフトのFF13も出る。素人目にも、なんかいろいろやってみたいようなゲームがでてきて、値ごろ感もかなり感じる。来年も、グランツーリスモとか、God of Warも出るみたいだし、ある程度までは持ち直しそうな気がする。

じゃあ、結構PS3は大丈夫そうで、ひいては汎用GPU化の流れが後押しされるかなと思う。まあ、もちろん、それだけでGPUの汎用化が決まるわけじゃないとは思うけど、全体の空気を変える、潜在的な効果はあると思う。

ただ、ここまでの話はあくまでも、開発者が次のトレンドに乗っていけるかという話であって、のったとしても、のった結果のアウトプットが消費者に受け入れられないと駄目だ。要するに、汎用GPUによる処理画像を消費者が望むのかということだ。

GPUの汎用化で映像の自由度は増すわけだから、映像のクオリティーとしてはさがることはない。だから、映像の質で消費者が受け入れないことはない。問題はコストだ。ちょっぴりしかきれいにならないのに、値段が10倍では納得できない。基本的に自由度が増せば、どうすべきかの選択や工夫が入る余地があって、手間がかかってコストは増える方向にある。その増えたコストが、妥当かどうかの判断は感覚的なもので、予測するのは難しい。

とにかく、コストを増やさない方法を見出さないと成り立たない。そういう部分はゲームエンジンとかツールが担っている。だから、結局、GPUの汎用化にとって、エンジンやツールなどの環境整備が一番重要なんじゃないんだろう。ソフトウェアレンダリングていってんだから、そりゃそうだ。

もし、そういうゲームエンジンやツールができなかったら?もしくは、数年でなかったら?汎用的GPUは駄目だろうか?たぶん駄目だろう。Cellにしてもそこに苦労していろいろ駄目なところがあるみたいだ。

じゃあ、そういうゲームエンジンやツールを作ることはできるんだろうか?これは、そんなに不可能なことじゃないんだろうか。やればできるもので、あとはどれだけ重要視してお金をかけるか、お金が集まるかということだ。この重要性は、現世代のゲーム機開発者が重々感じているはずで、これからさらに成長していくのは間違いないだろう。

だから、ゲームエンジンの更なる発展が見込めると考え、コストの問題も解決できるんじゃないかなと無理やり結論してしまえば、最終的にGPUの汎用化が進むに違いないということになる。ただ、ゲームエンジンやツールが出てくるタイミングはまだよくわからなくて、その時期にマッチしないような汎用的なGPUは、早すぎて死ぬなんてこともあるんじゃないだろうか。

というのが今日のながーい妄想。

追記:
最近の日記を読み返すと、例のごとく毎日結論に一貫性がない。でも、それはその日の思いを尊重するという方針に基づきよしとしよう。でもちょっと、まとめて考えてみた。

 以前、破壊的イノベーションの観点に立つと、GPUの肥大化が行き過ぎてて、モバイル化の流れとともに、CPUとGPUの統合に飲まれるんじゃないかという気がしていた。

それに対して、今回は新しいレベルのグラフィックに移行するための質的進化が必要で、GPUの汎用化はコストを折り合わせてなんとかすすむんじゃないかという結論だ。

前者は、多分中期的展望、後者は短期的展望なんじゃないかと思う。で、汎用GPUで動く一般のアプリケーションが出てくるんじゃないかというのが、長期的展望(願望?)になるだろうか。

この短、中、長期の変遷は、連続性がないとなりたたない。人間が扱っている以上、変化は徐々に起きる。

ここで少しわからないのは、短期と中期が、ちょっと逆の流れになっている気がするところだ。変化は徐々に起きるとか言っておいてなんだが、ひょっとしたら、この短期から中期への変化は劇的におきて、市場に激しい動きがあるのかもしれない。

モバイル市場に席巻されるのか、新しいゲーム機の市場が牽引するのか。

事実として今携帯ゲーム機の市場のほうが、据え置きより大きい。だとしたら、携帯向けに最も主眼をおいた開発になるはずだ。でも、ゲーム機だけの話じゃないしなあ。携帯電話とか、デスクトップ、ノートとかいろいろ含めた上で決まるよなあ。

また、携帯と据え置きって言うのは完全に分離しているものでもなくて、据え置きように開発したものをダウングレードして携帯向けにするっていうのも普通の流れだから、分けて考えるのもどうも違うんだろうか。

う~、わかんねえ、腹減ってきた。これはもう少しゆっくり考えていかないとわからないな。

2009年10月12日月曜日

あるチャネルたんぱくの話

ある神経科学の本をよんでいたところ、余談としてこんな話が載っていた。


あるお医者さんが科学者に転身して、あるチャネルたんぱくを研究し始めた。はじめは、特に役に立つとも思えなかったようだが、自分がとにかく面白いからやったんだと。

そのたんぱくの機能を調べるには、どうしても3次元構造をみる必要があると感じて、電気生理の職を辞めて、たんぱくの生化学者とX線結晶学者として新しい職を始めたらしい。

まわりにはばかだといわれたそうだが、そんなことはどうでもよかったそうで、とにかく楽しくて、やり続けて、その結果偉い結果を得たんだそうだ。


果たして、自分はこんなことができるだろうか?ある程度積み上げたものを全部ひっくり返して、進んでいく勇気。というか、そんなものをかすめさせる、貪欲な興味。

意外と遠回りそうでそうじゃないと気付かない心理的な障壁が、一番の問題なのだろう。自分を省みて、決めつけている壁をみてけることと、そもそも本当になにがわかりたいのかということを、突き詰めるべきなんだろうと思う。あとは、自分が面白いと思うことを突き進むだけのことか。

まあ、こういう方法を知っても意味ないんだろな。自分がそういう人じゃないとできないんだろう。 自分には自分の道がきっとあるんだろう。

2009年10月11日日曜日

GPUとCPUの融合

最近、よく話を聞いたり、自分でも感じるのが、GPUとCPUの間のデータ転送の問題。クラスタ組むとき、対外ここがボトルネックになって、問題である。

じゃあ、GPUとCPUを統合すればましになるんじゃないかって考えるけど、ビジネス的にはGPUとCPUの組み合わせを選べないというのが問題になる。

結局、選べるのがいいのか、融合した方がいいのかを比べて、市場が決めるわけだ。

IntelとAMDはGPU内蔵を進めてるから、もうすぐディスクーリートGPUと混合CPUGPUの対決がみれることになる。

でも、クラスタで役に立つとかって、あんまり市場に影響力ないだろうな。一番重要な要素は、一般の人にとってなにが得になるかってことだ。GPUとCPUが融合すれば、データ転送能力が向上して、消費電力もよくなるだろう。これが効くのはネットトップとかかな?

一方、GPUのアーキテクチャの変化はすごく激しくて、それを選択していけるってのは依然として大きな利点となる気もする。でも、それってデスクトップで、しかもかなりマニアな人の話かな。

もし、これからのGPUがモバイルの事情に引っ張られる様になるなら、CPUと融合していくしかないんだろう。

そうじゃなくて、モバイルではないデスクトップで、新しい革新的なアーキテクチャが必要とされることがあるなら、ディスクリートがいいんだろうか。


でも、新しい革新的なアーキテクチャって、結局、GPUのCPU化ってことになるとしたら、極めてCPU的なGPUのLarrabeeが行き着く果てであって、IntelはそれをCPUと融合していけば、GPUのアーキテクチャの変化についていく必要がないのかもしれない。

それに、破壊的イノベーションの視点から見ると、今の特にNvidiaのGPUは行き過ぎている感がある。 そこそこの性能でいいから、GPUをCPUに混ぜていって、モバイルが主流になるっていうのが、結局は王道の気がする。実際、GMAはそれに近い感じで地位を確立してきてるもんね。

あれ、私、CUDAつかっているんで、そんな結論困るんですけど!

まあ、最後は実際の物が出てみないとわからんから、それをみて見極めねばならないな。どうせLarrabeeがCPUに統合されていくのにまだ、2、3年ありそうだし。

もし、CPUとGPUが融合するのが主流になるとしたら、 なにがどうかわっていくだろう。は、それって結局Cellと一緒ジャマイカ?

2009年10月5日月曜日

cell tv

ついにでるらしい。
http://www.itmedia.co.jp/news/articles/0910/05/news067.html

"演算処理能力は理論ピーク値で200GFLOPSと、同社の従来製品比で143倍に上る。"

 思わずふいてしまいました。やっぱすごいねー。でも使い道あるんだろうか…。
高すぎて個人的には絶対買わないと思うけど、夢があっていいな。

2009年10月1日木曜日

Fermiきたー

http://pc.watch.impress.co.jp/docs/column/kaigai/20091001_318463.html
http://www.4gamer.net/games/099/G009929/20090930012

GT300は、いろんなうわさがありつつ、本当かな~と眉唾でまっていたが、これはうわさ以上でしょう!

ECC対応
MIMD化
倍精度演算大幅向上
コンフィグラブルなShared memory or キャッシュ
メモリ空間の統合

まず、 上の3つはまことしやかにうわさされていたけど、そんなすぐには無理だろうな、あと数年かけて段階的にだろうなと思っていたのが、いっぺんにきたー!これはすごい。このうちの一個でもできれば、万々歳だと思っていたら、すごい!Nvidiaは、AMDの流れでひよるどころか、思いっきりHPCの流れを出してきた。そんなにHPCってもうかっているのだろうか?Nvidia本気だな。

その次の2つは全くの予想外だった。Shared Memoryは、もうこのままあまりいじらないのかなとおもっていたけど、最近AMDは倍増してたからひょっとしてとは思っていたが、まさかキャッシュもいれるとは。これで、結果的に、Larrabeeとかなり近い構成になってきた。整数演算用のパイプも別に入れてきたのもそうだ。これって、画像処理でも有効に使えるもんなの?

あとは、性能的なところは、うわさのとおり、ほぼ倍増。GDDR5。

あと、気になるのが、SMあたりのSPの4倍増。 命令ユニットも増えた。この結果、Warpは変わるのかってところ。今までは8SP*4clockで32threadだったけど、32SP*1clock=32threadになるんだろうか?そうだとして、これがどう効いてくるかは、わかりやすいのでいえば、逐次で実行される命令数の数が増えるってこと。CPUが3GHzくらいで実行できるのに対して、Fermiでは1.6GHzくらいで実行できるようになって、遜色なくなってくることになるかもしれなくて、逐次計算が必要なある種のアプリケーションでは非常にありがたいだろう。実は自分も最近リアルタイム計算とかやっているので、これはありがたいかも。

あと、複数カーネルの実行ができて、メモリ空間が統合されるとなると、例えば他のSMのShared Memoryに直接アクセスできるようになるのかなっていうのも気になるところ。Atomicの命令を改善するみたいだし、それをやるってことは、まわりまわって、ひょっとしたらできるかもしれないな。

こうなってくると、もうほとんど16コアの32ワイドのベクタ長のCPU見たいなもんだ。すごいな。FermiとQuadのCore i7 とか載せていると、CPUが二つのっているような感じで変な気になってくるな。

あとは、本業の画像処理性能がどれだけあるのかっていうのと、これだけ改良して不良なくちゃんと動くのか、発熱問題は大丈夫なのかとかってところ。 Tesla世代のプログラムもちゃんと動くのかって言うのも、結構大切かも。でも、Fermiをがっつりうごかすには、Teslaのプログラムをかなり手を入れないとだめかも。まあ、自分は趣味なんでいいですけど。

これは、他のプロセッサにすごい影響与えるな。特にLarrabeeと、もろにバッティングするだろうから(ピーク性能ではFermiが上)、 Larrabeeが、自分の位置づけをどうするか。AMDのGPUは、Nvidiaとはもうかなり別モンになりつつあり、このままいくと、どっちかがトレンドをはずして死ぬこともあるかもしれない。どちらもそれぞれの立ち位置で生きていけるってのもあるかもしれないけど。GPUの本業としての利益に比べたら、HPCの利益なんてたいしたことないと思うんだが、そうするとAMDの方がまともに商売やっていけそうな気がする。でも、IntelとNvidiaをみていると、汎用的なGPUに時代の流れは向かっている。どうなるんだろう。やっぱり、問題はキラーなアプリケーションしだいかな。あと、次世代ゲーム機の動向も、GPUの流れを決めるだろう。その観点からみると、一体なにが選ばれるんだろう?

あ、Cellはどうなんだ?