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を実行できたときは、すっごくうれしいし、これでいけるというやる気が起きてくる。

よーい、スタート

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