2007年12月25日火曜日

2009に激突

休憩中、暇つぶしにG100はどうなるんだべ〜とググってみたら、

http://xtreview.com/addcomment-id-2151-view-NVIDIA-G90-G100-DATA.html


Unlike G90 that is based on the same architecture as the G80 aka NV50,the nVIDIA G100 (NV60) will be a totally new architecture and support Shader Model 5.0.The nVIDIA G100 will be based on TSMC 45nm process and will amount to more than 1.5 billion transistors .The nVIDIA G100 will support the nVIDIA CUDA 2 technology and will have much more computational power than the NV50(aka G80/G90) architecture..Marketing name for the G100 is said to be "GeForce X1800 GTX"...G100 will have almost 2 Teraflops of shader processing power..
The nVIDIA G100 is to be released in Q4 2008 or Q1 2009 timeframes..

Cuda 2とかうわさでてるんだ。45nmのnvidia g100で2Tflops。なるほど。


Cellの2代目(32SPE)もLarrabeeも2009年らしい。こりゃ大激突だな、本当。性能も価格もきっと大差はないだろう。そうなると、やりやすい環境をそろえたのが勝ちだな。

2007年12月20日木曜日

Lovely Kuta

クタタンは世界の宝だ。
http://wiredvision.jp/news/200712/2007121923.html
http://wiredvision.jp/blog/fromwiredblogs/200712/20071219121017.html

CellがFoldihg@homeで偉業達成したり、Road Runnerに採用されたり、本当にすごいことをやらかして、かつ、こんな笑いを取れるのはこの人しかいないよ!

PS4で戻ってこないかなあ。無理かなあ。もしくはCellみたいな金かかることじゃなくて、コストのかからないような事業をいちからやってもらったら、またなんか面白いことをやってくれそうな気がするんだけどなあ。

2007年12月19日水曜日

俺核爆死

やられた…。

http://www.nvidia.co.jp/object/tesla_testimonials_jp.html

ここまで大規模なのをやってたなんて。こんなに短期間の内に。NVIDIA本当にやる気なんだな。

くくく、まあいいさ、楽しくなってきたよ。

2007年12月18日火曜日

マルチコア用自動最適化コンパイラ

「マルチコア用自動最適化コンパイラなんて絶対できない」

あるコンピュータアーキテクトとお話していたときに、その人は苦笑まじりでそういっていた。

私はコンパイラの開発なんて全然やったことないし、やりかたもわからない。だからか、そこそこの実行性能でいいいなら(手動と比べたときの費用対効果で妥協できる程度)、できるんじゃないかと思ってしまうが、そうでもないのかなあ。

いまはマルチコアCPUの群雄割拠で、どんなアーキテクチャを前提にコンパイラを作るかの方向性が多すぎるからというのが原因のひとつであると思う。どれか有力なアーキテクチャが生き残って、それをみんなが使うようになれば、コモディティ化の恩恵のようなものが、コンパイラを生んでくれるんじゃないだろうかとのほほんと思ってしまう。逆に、自動コンパイラが可能なアーキテクチャというものが必要とされるのかもしれない。それはLSを持つCellのようなアーキとか、スタックメモリが実現されたCPUのような、スケーラビリティがだせる、新しいものだと妄想している。

2007年12月16日日曜日

大規模計算

実際に大規模なニューラルネットを組もうと考えてみて、最近気づいてきたことがある。

多少非効率でも、各ノードに同じ仕事を割り振り、局所的に完結するような計算方式にすべきということだ。

普通あたりまえなんだろうけど、今さら気づいた…。こうしておかないと、計算の規模によって、プログラムを書き直したり、効率が異常に下がることになる。

大規模計算のノウハウというのはどういうものなんだろう。IBMとかBlue Brainでどういうふうに計算をさせているんだろう。

ファッキン眼鏡(泣

アイシールド21の27巻が出た。敗者の王城、すごいいい味でてたなあ。もっと強くなっているとセナにいわれて、「そうでなくては困る」といったときの進の笑顔。司令塔としての役目を終え、トイレで一人で泣く高見。うう〜、おれっちも泣きそうだよ。

再戦がみてみたいけど、なんとなくこの漫画はこの大会きりで終わると思うから、無理だろうな。神竜寺、王城、白秋の間の対決も見てみたいなあ。

2007年12月13日木曜日

やっぱCellいいかも

GPUで実際にニューラルネット計算するのに、あのデータをこう移動して、あの演算をこうしてと算段をつけていたら、あらためてCellのスペックが魅力的に思えてきた。

Cellはリングバスの帯域が大きくGPUの4倍近くある。またLSがshared memoryの10倍以上ある。一応、SPE間の同期のしくみも用意されている。どれも大規模ニューラルネットには有利だ。

ネックはPS3のXDRのメモリ量だな。

イッツバンドウィドゥス!

shared memoryをLSのように使うのが推奨らしい。
http://pc.watch.impress.co.jp/docs/2007/0416/kaigai350.htm

shared memoryにしてもLSにしても、メモリのサイズにあわせてどのように計算を分割するかがいちいち面倒。また、圧縮データをどんどん演算したほうがいいのか、解凍したデータをぶんぶん転送したほうがいいのかも、難しい。計算する問題や規模によってそれが変わってくるからまた面倒。

でもCellとGPGPUは大体、同じ計算モデルに収束しそう。アーキテクチャが似てるから当り前か。

しかし、こんな苦労は、いつかスタックメモリが一般にでた時点で無に帰すのではないかと思う。あと10年以内に出るかな?5年くらいででないかな。じっと待ってた方が一番かしこいのかな。

2007年12月12日水曜日

5合目到着

やっとこさ、Block内のネットワークでけた。うれしかー。SPE一個でネットワーク組めたのに近い。まだいろいろ手をいれれるところはあるけど、とりあえずこんなもんだな。

次は実機で、どれだけBlock間の同期がうまくとれるかががんばりところになるな。メモリアクセスレイテンシを計算部分がどれだけカバーしてくれるかだ。

ネットワーク

実機が動かせず、block間で同期が試せないので、とりあえず1block内でネットワークを組んでみた。結構、あっさりできた。しかし…。

shared memoryで、別スレッドが同じ名前で宣言した変数は、別の領域になるのか、同じ領域か?そういえば、global memoryもわかんないな。なんか変なことになってるかも。う〜。

そろそろサンプルを見直す時期だな。

2007年12月11日火曜日

3TFLOPS本当?

次世代nvidiaハイエンドGPUは3TFLOPSという噂をきいた。しかし、誰もヨタ話程度にしか思っていないみたい。たぶんSLIで実現するんじゃないかと思われているよう。

来年の前半にはでるようなので、それではっきりする。その頃には、Grape-DRの話もでてくると思うので、対決になりそうだ。

Grape-DRは500GFLOPSで、汎用計算機より値段は多少高く、ベクトル計算機よりは全然安いらしい。はじめから大規模計算を見越してつくっているから、大規模にシステムを組むのはGrape-DRに分がありそう。大規模なシステムを組むときのコストは、安くつくかも。しかも倍精度もサポートしていて、科学技術計算にはありがたい。ただFPGAをつかってメモリ制御などを行う必要があるのが面倒そうだ。

次世代nvidiaGPUは、性能的にはGrape-DRを越えるのはまず間違いないようで、1チップあたりの性能では、トップになるのでないか?しかし、倍精度サポートが不明で、cudaにまだいくつか問題があり、大規模科学技術計算には?がつく。しかし、しかし、1グラフィックカードで3TFLOPSを越えるような性能がもし実現されるなら、力の差でごり押し勝ちかな。

2007年12月10日月曜日

blockの同期

gpu実機が結局使えず、いまだエミュでプログラミング。
シングルセルは簡単に実行できたので、やっぱり次はネットワークがやりたい。

block間の同期機構がないので、大規模ネットワークは無理かと思ったが、global memoryに同期用のフラグをおけばできるらしいと、ちらっときいたのでやってみた。

結論からいくと、エミュだとできない。エミュのせいなのか?一つのblockが計算終えるまで、ほかのblockの演算をしないので、待ち続け。う~ん。

2007年12月7日金曜日

ネットでの発言

最近ブログでの発言が社会問題になったり、それで解雇されたりということがよくニュースになる。
私はmixiやその他掲示板で、人としてこれは最低限というのは守ってきたつもりだが、それだけでは認識が甘いのかもしれない。
ネットでの情報発信が、どのようになされるかを考えれば、実に明白なことだ。ネットでの情報発信は、基本的に誰もが、いつでも、何回でもアクセス可能である。一方、飲み屋でなされるその場かぎりの発言は、その場に居合わせた人間に、ある瞬間、一回きりである。点か、体積かぐらいに、まさに次元が違うのだ。へたな論文より、ある日のくだらない走り書きがより大きな重要な影響力を持つことは十分ありえるのだ。

それが逆に面白いから、流行ったというのはあると思う。しかし、そのような影響力を認識せず、流行に乗って、ネットで飲み屋の発言をすると大変なことになる。ネットでの発言は、猟銃や車のような危険性を持つ道具である以上、飲酒しての書き込みは犯罪的ですらあるかもしれない。

いまのところ、社会はネットを取り込んでもなお平穏ではある。しかし、いつかネットの自由が社会を混乱させ、ネットの自由を制限しなければならない日がくるのかもしれないと、少し恐ろしい気持ちになった。

2007年12月3日月曜日

8800gtを2枚させる構成

世の中ゲーム目的外で、8800gtを2枚させるようなマザーというのはあまり存在しないんだぜ?
2枚ざしできるPCを探してよくわかった。結局、現実的な選択肢としては、ゲーマー仕様のPCしかない。
8800gt2枚刺しで、電源は700Wのものじゃないとだめらしい。全部そろえて、大体20万くらい。
どうなんだろう。思ったより安い気もするが、やすやすと手を出せる価格じゃないな。

この構成で行くと、約一台1Tflops。20万/1Tflops。結局PS3とあんまかわらんな。

2007年12月1日土曜日

cudaオワタ?2

CUDAには1Grid10秒までという制限があるらしい。
http://exth.net/~ohshima/wordpress/2007/11/15/14/
え~、ほんと?何でそんなめんどくさいことをと思うのだが、nividia的にきっとなんか困るのだろう。

普段、シミュレーションが数時間かかることもざらなので、これじゃ使えねえぞ…。

cudaオワタ?

いまさらながら気づいたんだが、Block間の同期はそもそも取れない。ということは、GPU全体で協調した演算は無理?やばい…。

と思ったのだが、global memoryを使って通信することで何とかなりそうだ。これはCellのDMA転送とほぼ同じような苦労だ。ああやりたくね~。

2007年11月30日金曜日

cudaドキュメント5

今日は現実世界から逃避し、再び仮想世界で開発作業。
どのデータをどのメモリに割り当てるか考えて、適当に試した。
qualifierを忘れたのでドキュメントを読み返したら、以前、謎だったメモリのアクセスのレイテンシの説明を5章で見つけた。なんだちゃんと書いてあるじゃんか!テクスチャメモリはプリフェチをつかうと、global, constantよりいいらしい。ちょっと上級そうなので、いつかできたらということで。
shared memoryが早くておいしいので、どれだけの量使えるか試してみると、あれいくらでも使えるぞ???あふれたらglobal memoryにいくとかだったっけ?エミュだから?
ドキュメントによるとレジスタの数がモン凄いある。これは使えるなら使わない手はないが、どうすりゃいいにかなあ~。で、ネットをうおさおしてたら、こんな記事を見つけた。昔だったら見向きもしなかったが、今の自分には貴重だな。
http://pc.watch.impress.co.jp/docs/2005/0914/kaigai212.htm

8800gtちたー

ついに物が到着!xpでpci express*16がついてるのがなかったので、Linuxマシンに入れてみる。が、どでかいビープ音がでる。電力足りない?規格があってない?故障?

がっかりしてたら、ただ電源を差してないだけでした。あほ。にしても、別電源必要なんだな、高いGPUは。CPUよりも大喰らいだから当り前か。

電源入れてサイトライ。いちおう起動するものの、10分くらいかかる…。なにかがおかしい。

しかし面倒なのでそのまま、cudaをいろいろインストール。こういうときいつも思うが、Linuxはパスを通すのがいちいち面倒だなあ。自動でやってくれるようにできんのかな。

結局ドライバをインストールできずに、すっとばしてやったため、まだ未完成。はやくサンプルを実行して、おおーっていいたいなあ。

それにしても、ファンがうるさいな。こりゃやっぱ静穏ファンの登場を待った方がよいな。

2007年11月29日木曜日

cudaドキュメント4

ちょっとづつ読み進んでいる。shard memoryはcellのlsのような低レイテンシでアクセスできる領域。この容量は16KB per multiprocessor だそうだ。8800gtxならトータル256KB。データ専用とはいえcellのlsに比べたら全然少ない気がする。cellは1speあたり 256KBでトータル1.5Mはある。
またメインメモリへのアクセスのレイテンシが200-600 clockかかるそうで、これもCellより全然長い。メモリにアクセスしている間、演算があれば、レイテンシは隠蔽できるようだが、簡単にできるんだろうか?
ニューロンの計算では、メモリを喰うのは発火履歴と結合強度情報だ。しかし、これはいずれもシナプス遅延を使って、うまいやりくりを考えられるときがある。
シナプスコンダクタンスと膜電位の計算は、違うスレッドで分けて計算するのも手かもしれない。

2007年11月28日水曜日

G100?

nvidiaの次期gpuが来年の中頃に出るらしい。まだ情報は錯綜してはいるが。恐らく1テラ越えしてくるだろう。それで7、8万円。ps3が5台分以上に匹敵するから、たぶん現状での価格性能比は最高になる。2枚ざし、4枚ざしで簡単に2倍、4倍できたらものすごいことだ。仮に4枚ざしで、10台のPCでクラスタつくったら、地球シミュレータに匹敵してしまうのだ。これは凄いインパクトだ。
でもその電力はまたモン凄いことにはなるけど…。

cudaドキュメント3

ドキュメントを読んでいるとテクスチャに関することが結構出てくる。これは自分には関係ないだろうとほとんど読んでいないのだが、ひょっとして理解しておくべきなのだろうか。というのも、どうもテクスチャ用のキャッシュやメモリが専用にハードに固定で存在しているようで、使わんと損だなと思うのだが、どうやっても普通の計算には使えないのならどうしようもないし、どうなん?

こういうのをみると、cudaをつかうにはたいした知識はいらないんだけど、3dグラフィックの事情をちょっとでも知らないと、ひどく別世界のものにみえて、みな手を出しにくかったり、逃げたりするかもしれないなと思った。

最新技術のおいしいところを得るには、高度な専門的知識よりも、大局的な視点から最新の情報を幅広く得ることが重要かもね。

2007年11月27日火曜日

cudaドキュメント2

ドキュメント読み2周目で、cudaのポイントがわかってきた。ドキュメントにあるようにそれは4つあって、function type qualifier、variable type qualifier、execution configuration、built-in variable だ。spへの演算の割り振りは当然考える必要があるが、それ以外にとくにcudaにおいて肝要なのは、メモリの周りだろう。
ドキュメントを読んでいると、スレッドの同期がどうもやりにくそうだ。ランタイムにはやってくれそうなのが入ってるんだろうか?たいていどんな言語でもスレッドの同期にはコストがかかるため、なんとかうまく逃げる方法がないかともがくが、大抵どうにもならない。そりゃそうだ。
cudaはどんな処理にコストがかかって、苦手なのかがまだ完全にはっきりしていない。そういうハードくせ、こつのようなものは、下手にドキュメントに書くと、変な人に騒がれるから書きにくいんだろうなあ。しかし、大抵それを掴むのに時間がかかるから、そこを理解しやすいようにしておいてくれると助かるんだけどなあ…。

2007年11月26日月曜日

Larrabee

今は科学技術計算むけの計算機が安価にいろんな種類がでてくる、シミュレーションファンにはたまらん状況だと思う。PS3、cuda、FPGAなど。そんななかで、Intelが参戦!っていうのがLarrabeeというコードネームの次期cpu。cellと違って、プログラマの負担を最小限にさせつつ、gpu的な並列計算を可能にするメニーコア。おもしれー。Cellをえらい持ち上げてたライターGが、Larrabeeにも興味津津のようで、そういうのが好きなひとには、面白いだろうな。こんないろんな計算機がでてくる、カンブリアの大爆発のような状況で、一体、その次の次はどうなるんだろう。みんな何を目指してるの?

cudaドキュメント1

cudaのドキュメントを読みかえしている。大体わかってきた。ただまだちっとよくわからんのが、_gold.cppのファイルってなに?なんで.cuファイルにまとめないわけ?っていうかgoldって一体どういう意味なんじゃろ。こういうのってひょっとして常識かもしれないけど、わたしゃよくわからんのだなあ。hogeとかいう単語は当り前のようにプログラマはつかうけど、hogeってなに?はげ?とかね。まあ、なが〜い目で見てね。

それにしても、メモリの種類が多くて、レイテンシや帯域、構造がよくわからんのが一番面倒そうだ。いいサンプルを見つけて、それを参考にするっきゃないかな。cellよりもcudaのほうがプログラマ人口少なそうで、なかなか探索大変そう…。

geforce8800GTを求めて

今日はG80系のグラフィックボードを探したのですが、思いのほかない!誰かもってないかな、ちょっくらいじらせてくれないかな〜と思ったが全然ない。相当なゲーマーしか持ってないよね、普通。ということで、8800GTを買うことにしました。しかし、これがまた売ってない。しょうがないからネット販売でお取り寄せ。約35000円。でっかいファンのモデルがよかったけど、いつになったら出るかわからず、年越えてからの可能性もあるなんていうから、あきらめて普通のちっさいファンのやつで我慢。まあ、3Dゲームとかやらないし、そんな酷使するわけじゃないから大丈夫だべ。いや酷使できるようなプログラム書かなきゃ意味ないか?

彼女はプログラム

思わず笑って、非常に納得。なんでだろうっておもっちゃう。

スラッシュ国民投票7、プログラミング言語はガールフレンドのようなもの。つまり、…
a、経験のない連中はモノにできない
b、力づくで言うことをきかせるな
c、本で読むのと実践は異なるよ
d、前カノと比較もほどほどに
e、すべては幻想だ。とほほ

お漫画

今日は読んだ漫画は、なぜかどれも実り多いものが多かった。なかでもぴか一だったのがアイシールド21。ひるまがこんな序盤でいなくなるなんて、思っても見なかった。ひるまなくして成り立たない漫画だと思ってたから驚き、2代目クウォーターバック誕生の決意に思わず涙。白秋戦はマンネリな展開になるのかと思ってたら、なんというどんでん返し。白秋戦のあとも楽しみ。

ハンターハンターも面白かったな。王がいったいこれからどう成長して行くのか。単に倒す倒されるの展開ですみそうになく、その過程がこれから楽しみ。

あとハクバノ~。今週はひどい厳しい、割り切った現実の幸せというのを、タカコさまにばしっと叩きつけてくる。現実は確かにそうだけど、でもそうじゃないんだという思いがこれからどう展開してくるのか。最後は現実には結局勝てなかったなんてのも十分ありえるけど。これも最後どうなるのか、全然わからん。まったくいいお勉強になるな、男には。

2007年11月25日日曜日

mixi

周りを気にせず、好きなことを書くにはmixiってやりにくい。好きなことをとことん人の興味、理解を気にせず日記で展開していくというこういは、申し訳ないし、むなしい。ネット上で個人でやる分には、多少さみしいけど、本当にわかる人が自分の意思で来てくれるだろうから(くるんだろうか?)、気が楽だ。

neuron by cell

cellでのneuronシミュレーションは、のらりくらりでなかなかすすまん。gpgpuの性能とかアーキテクチャを知り始めたら、そっちのほうが面白くなってきてしまっ浮気気味。まあでも、両方やって比較できたら面白いことになりそうだから、Cellもまだまだやるよ!まだやってみたいことあるしね!

neron by cuda 成功!?

適当にHHモデルをhelloworldにぶち込んだら実行でけた!Cellよりはプログラム楽かな?シングルセルです。

でも、まだスレッドがGPUの内部のどこでどうやって実行されてるとか、メモリーをどういう風に割り当ててるとか、まったくわかってない。ひょっとするとホスト側で全部実行されているだけかも。

まあ、まだエミュだしね~。8800gt手に入れねば。

cudaはじまったな

今日はやっと、cudaのサンプルが実行でけたー!やっぱどんな環境、言語でも、HelloWorldを実行できたときは、すっごくうれしいし、これでいけるというやる気が起きてくる。

よーい、スタート

好きなことをばしばし書くよ!