2008-12-23から1日間の記事一覧

Goolang

Erlangが生まれた頃はGPUPUがなかったので、いっそ今からGoogleがErlang風のVMを新しく作ってしまえばいいんだ。ハードウェアも作ってしまえばいいんだ。言語も作ってしまえばいいんだ。そしてGoolangと名付けるといいんだ!

やりたいことがいっぱいありすぎる

ここ数日脳がハイテンションな状態になって、解決策(かもしれないもの)がぞろぞろ沸いてくるので困る。27か8には実家に帰るつもりでいるので出来ることには限りがある。C++版の最中限アルゴリズムだけど、カード配列がソートされていれば大小比較を節約でき…

CUDA日記(2の累乗でない配列のparallel reduction実験)

要素数が72個の配列の合計を取る計算は128まで0で埋めてしまった上で普通の2つずつのreductionをする方が速いのか、それとも素因数分解して一部3とかでreductionした方が速いのか、という話。結論から言うと最初に3で割るのが128まで埋めるタイプより1割程度…

プリプロセッサでのelse if

Cっぽく#else ifかと思ったら#elifだった。Pythonと同じ。もちろんPythonの方が後なのだけど、最初にelifを使ったのはCなんだろうか。それとももっと前にelifを使う言語があってそれを真似たんだろうか。

vim日記(デレ期)

vimのよさがわかってきた。自由にカスタマイズできる環境だとemacsと比較して「なんかややこしいなぁ。emacsだったら普通の言語は最初から全部自動判別して適切なインデントにしてくれるのに」とか思ってしまうけど、今はKnoppixなのでカスタマイズするのが…

CUDA日記(Bank Conflictの実験)

計測したい処理を1メガ回繰り返し計算しているので消費クロック数が86000420みたいになる。だから端数は気にせずに86Mと表記することにした。Bank Conflictが起きるのを確認したくてこういうコードにした。スレッド数は4。 v += i;を繰り返しているあたりの…

忘年会から朝帰りしたCUDA日記2

昨日書いていた「2の累乗でない要素数Nの配列のparallel reduction」について。ちなみにやりたい内容はリストの合計を取るだけなので素朴な方法として「2の累乗に足りない部分を0で埋める」が考えられる。あとif文で分岐する方法と、素因数分解して約数でred…

CUDA日記3

シェアードメモリはL1キャッシュに相当するらしい。グローバルメモリはキャッシュされないので必要があれば自分で明示的にキャッシュする。グローバルメモリから読めと指示するのは4クロックで済むが、実際にデータが送られてくるまでに400〜600クロックのレ…

vim-rogue

ダンジョンを進んでいくとモンスターが現れて、モンスターは書き換え前の文字列と書き換え後の文字列を提示して、書き換え終わるとモンスターを倒せる。時間に応じてヒットポイントが減っていくので素早く書き換えることが重要。町の魔法屋で魔法書を買うこ…