メニュー

関連ページリンク

トップ > remote > remote - 人気ブログ(Blog)検索結果詳細 (2008年12月3日 8時)

「力が欲しいか?」CUDA使うだけで速くなるなんて素敵すぎる

どういういきさつだったか忘れたけど、CUDA使ってアプリ作るだけで2倍どころか10倍、中には30倍とか速くなるのを知ってCUDAに行ってみる。http://www.nvidia.co.jp/object/cuda_home_jp.html#state=homeここに、いろんなアプリがあがってて、どんだけ速くなったのかみたいのもみれたりする。画像処理系が多い。

cudaは、.cuというファイルにコードを書いてnvccでコンパイルする。インタープリタ以外を使うなとおじいちゃんの遺言で言われているので、めんどくさいなぁと思っていたけど、既にpyCudaとかいう素敵なモジュールもあったりしたので、コレ経由で使えるようにしてみる。

環境

osx10.5.5

MacBook Late2008 2.4Ghz 9400m

4GB Mem

500GB HDD

インスコ手順

  1. CUDA SDK
  2. CUDA ToolKit
  3. Boost
  4. pyCuda

いまここ、コンパイルエラー中

作者:a2c

更新日:2008年12月3日 16時12分

このブログのホーム

椅子と寝床は、値段じゃないだろ

微妙にアーロンがプチDisられてる気がするので、アーロン使って10年以上になるので経過などを含め冷静に考えてみる。

はじめて自分で買った椅子は19歳くらいの時に買った2万円くらいのいい加減の椅子だった。全体がファブリックで長時間座ってても、疲れないし、十分調整機能ついてた(座面の高さ、肘おき2自由度、リクライニング堅さ&ロック)。だけど、全然持たなかった、2年もたたないうちに、ファブリックをロックしてる部分が外れたり、金具がゆるんでガタガタしてきたり。しかも重要パーツは、金属プレートがかしめてあったり、ステープラ的なもので止めてあるせいでメンテナンス性が激しく低いというか、メンテ出来ない。ウィール根本のベアリングもがたついてくる上に、交換不能。

 2年くらい使ったけど、おいしいところははじめの1年くらいで、後は、ジワジワとへたってくる。次に買い換えるとして、同じクラスのものを買ったとしてまた2年ごとに買い直す事を考えると20万の椅子を10年使った方が安いと思ってアーロンチェアを買った。その頃は今ほど選択肢が無かった気がする。

人生の半分を過ごす布団は、こだわってる人が大勢いるけど、布団で過ごす以外の時間の10%以上は、過ごすであろう椅子をこだわってる人が少ない。

5万の椅子か8万の椅子か10万の椅子か20万の椅子か、そんなのあんまり差がないよ。考えるなら、1年当たりおよび人生でどれだけの額を椅子に使って良いんだろう?と考えるべきだと思う。

ろくにのりもしないバイクを100万で買って5年後に買い換えたり、30万のパソコンが2年で陳腐化してしまうなら、椅子に価値を回した方が良いと思う。もし、オーダメードで、完全に自分に合った椅子が生涯を通してメンテナンス出来るとしたら、その椅子に100万払ったとしても安い気がする。

椅子はイニシャルの値段だけ考えないでその後のメンテナンス可能な期間や値段。自分が椅子を利用する時間などを参考にして、欲しい椅子を考えたとしたらベスト椅子は安価な椅子なのか?ベターいいとしても、高い安いは考慮しなくていい気がする。

アーロンの気に入らないところもある、アーロンは首の支えが無いところが気にいらない。

10年以上使ってるけど、壊れたことないし、がたついたり、緩くなってる可動部もない。買った時は、10年座れば元が取れると思ってたけどまだまだ、使えそう。最近は、座面のメッシュのテンションが弱ってきたのと、座面の全面のウレタンぽいのが硬化してきたのでそのパーツを交換しようと思ってる。

10万を境に、高いのと安い椅子の5年後の経年変化や故障率を比べてみたい。樹脂パーツは、10年も持たない気がする。それも、脚部などの負担の掛かる部分では・・ 耐久性も重要な機能な気がする。

作者:a2c

更新日:2008年12月1日 18時10分

このブログのホーム

第0回 Python旅館 に参加中

とりあえづ、部屋はここです。

f:id:a2c:20081129171231j:image


Vimでペーストする際に、インデントを保つ方法

:set paste

Bitbucket.orgで鍵pushする方法

はじめに、公開鍵をbitbucket.orgに登録しておく

ローカル側の.ssh/configにbitbucket.orgの設定をする

Host bitbucket.org

Compression yes

HostName bitbucket.org

IdentityFile ~/.ssh/プライベートキー

User hg

キモは、ユーザー名がhgで決まりな事

cloneする。

hg clone ssh://hg@bitbucket.com/ユーザ名/リポジトリ名

ユーザーとリポジトリは自分のをつかうけど、ログインユーザーはhgを使うこと。

これで、出来るようになった。thx tmatsuo

Processingでまぁるい頭を四角化

size(200, 200, P3D);


float[] numbers = new float[3];
numbers[0] = 90.0;
numbers[1] = 150.0;
numbers[2] = 30.0;

float totalNumber;
totalNumber = numbers[0] + numbers[1] + numbers[2];

float[] raitos = new float[3];
raitos[0] = numbers[0] / totalNumber;
raitos[1] = numbers[1] / totalNumber;
raitos[2] = numbers[2] / totalNumber;

float durRad;

//centerPosX, centerPosY, sizeX, sizeY, startRad, endRad)
fill(150,150,150);
arc(width/2, height/2, width*0.8, height*0.8, -PI/2, (PI*raitos[0]*3)/2.0);
fill(200,0,0);
durRad = (PI*raitos[0]*3)/2.0;
arc(width/2, height/2, width*0.8, height*0.8, -PI/2 + durRad, ((PI*raitos[1]*3)/2.0) + durRad);
fill(0,0,200);
durRad += (PI*raitos[1]*3)/2.0;
arc(width/2, height/2, width*0.8, height*0.8, -PI/2 + durRad, ((PI*raitos[2]*3)/2.0) + durRad);

fill(190,190,190);
noStroke();
ambientLight(102, 102, 102);
directionalLight(126, 126, 126, 0, 0, -1);
translate(32,50,0);
box(30);

f:id:a2c:20081130020237p:image

作者:a2c

更新日:2008年11月29日 17時15分

このブログのホーム

こわれた・きーぼーど

1. アットマークがPの横にあるキーボード

2. カッコが1つ左にずれているキーボード

3. [Caps Lock]キーが威張っているキーボード

4. スペースがハーモニカ状態のキーボード

5. 利用方法の分からないキーのたくさんあるキーボード

6. 隅になるとキートップが細くなるキーボード

7. 指をくじく可能性の高いキーボード 同)腐ったキーボード

(via:http://member.wide.ad.jp/~sano/glossary/glossary.html)

あなたのキーボード壊れてませんか?

作者:a2c

更新日:2008年11月23日 21時11分

このブログのホーム

OSのforkというか、メモリ管理について理解が進んできた。

forkを調べていたら、メモリ管理に行き着いた。

頭の整理もかねて、今の理解を晒してみる。

fork時に何が起こっているのかを理解するには、CPUと仮想メモリと物理メモリの3つの挙動を考えれば、最低限の理解は出来そう。(あぁ、最近最中限やってないなぁ・・)

まず、CPU(=プログラム)はメモリ上にオブジェクト(変数とか、ファンクションとか、インスタンス)を展開して、計算したり保管していたりしている。

 プログラムから見た場合、このメモリというのは、物理メモリを直接いじらず、仮想メモリ*1を見ている。仮想メモリと物理メモリのやりとりや、書き換えはOSが担当している。OSは、プログラム起動時に、物理メモリ上に必要な領域を確保し、その領域を指し示す仮想メモリをプログラムに教える。プログラムは仮想メモリ*2にアクセスすることで、透過的に物理メモリにアクセスすることが出来る。

さて、あるメソッドをforkしたい場合は、OSに対してこの子をforkしますよと、プログラムはお願いする。すると、OSは、物理メモリの領域はコピーせずに、仮想メモリ*3だけをコピーして、子プロセスに教える。この時には、親プロセスも子プロセスも全く同一のメモリを参照していることになる。

fork後、どちらか(親か子)のプロセスがメモリーに対して書き換えを行おうとすると、OSは、ここで初めて、書き換えられる領域の物理メモリーを確保し書き換え*4が起こる。これによって、必要最低限のメモリーの増加で、プロセス間で別々のメモリーを扱っているような挙動をすることが出来る。また、物理メモリのコピーより仮想メモリのコピーの方がコストが安い。


こんな感じに、forkを理解した。

これを使っているであろう、pythonのmultiprocessingがどうやって実装されているのか調べていけばいい気がする。

っていうか、これ基礎知識な気がする。今頃調べてる自分がかなすぃ

*1:ページテーブル

*2:プロセスごとの仮想メモリ空間、Page Frame Number, PFN

*3:ページテーブル

*4:Copy On Write

作者:a2c

更新日:2008年11月23日 17時8分

このブログのホーム

java-jaに行ってみた。残り10分

昨晩たまたま六本木にいた所、“凄すぎるGree”でjava-jaの勉強会をやっているらしかったので言ってみました。

 会場に到着して、10分くらいで最後の人の発表が終わってしまい、いろいろ話を聞くことは出来なかった。みんなでお掃除して、15人くらい残ったメンバーとお茶しに近くのカフェに移動

 今回のjava-jaは、GUI周りの話だったらしくインターフェースの話も出来た。フレームワークも大切だけど、インターフェースもね!という話はしなかったけど、GUIを真剣に考えている人も居るというのが分かって、うれしかった。(PGな人って、マジョリティーに対してのGUIに関して若干無関心だったり、それはデザイナの仕事みたいな思考停止な人が、多いかなぁと感じていたので)

 java-jaの自重しない所を見に行ったつもりだったけど、今回は、とってもスマートな集まりでした。世界のY氏が、4時間でビール缶13本とかそういうのは、男気あふれるいい話です。

作者:a2c

更新日:2008年11月22日 14時25分

このブログのホーム

「力が欲しいか?」CUDA使うだけで速くなるなんて素敵すぎる

どういういきさつだったか忘れたけど、CUDA使ってアプリ作るだけで2倍どころか10倍、中には30倍とか速くなるのを知ってCUDAに行ってみる。http://www.nvidia.co.jp/object/cuda_home_jp.html#state=homeここに、いろんなアプリがあがってて、どんだけ速くなったのかみたいのもみれたりする。画像処理系が多い。

cudaは、.cuというファイルにコードを書いてnvccでコンパイルする。インタープリタ以外を使うなとおじいちゃんの遺言で言われているので、めんどくさいなぁと思っていたけど、既にpyCudaとかいう素敵なモジュールもあったりしたので、コレ経由で使えるようにしてみる。

環境

osx10.5.5

MacBook Late2008 2.4Ghz 9400m

4GB Mem

500GB HDD

インスコ手順

  1. CUDA SDK
  2. CUDA ToolKit
  3. Boost
  4. pyCuda

いまここ、コンパイルエラー中

作者:a2c

更新日:2008年12月3日 7時12分

このブログのホーム

椅子と寝床は、値段じゃないだろ

微妙にアーロンがプチDisられてる気がするので、アーロン使って10年以上になるので経過などを含め冷静に考えてみる。

はじめて自分で買った椅子は19歳くらいの時に買った2万円くらいのいい加減の椅子だった。全体がファブリックで長時間座ってても、疲れないし、十分調整機能ついてた(座面の高さ、肘おき2自由度、リクライニング堅さ&ロック)。だけど、全然持たなかった、2年もたたないうちに、ファブリックをロックしてる部分が外れたり、金具がゆるんでガタガタしてきたり。しかも重要パーツは、金属プレートがかしめてあったり、ステープラ的なもので止めてあるせいでメンテナンス性が激しく低いというか、メンテ出来ない。ウィール根本のベアリングもがたついてくる上に、交換不能。

 2年くらい使ったけど、おいしいところははじめの1年くらいで、後は、ジワジワとへたってくる。次に買い換えるとして、同じクラスのものを買ったとしてまた2年ごとに買い直す事を考えると20万の椅子を10年使った方が安いと思ってアーロンチェアを買った。その頃は今ほど選択肢が無かった気がする。

人生の半分を過ごす布団は、こだわってる人が大勢いるけど、布団で過ごす以外の時間の10%以上は、過ごすであろう椅子をこだわってる人が少ない。

5万の椅子か8万の椅子か10万の椅子か20万の椅子か、そんなのあんまり差がないよ。考えるなら、1年当たりおよび人生でどれだけの額を椅子に使って良いんだろう?と考えるべきだと思う。

ろくにのりもしないバイクを100万で買って5年後に買い換えたり、30万のパソコンが2年で陳腐化してしまうなら、椅子に価値を回した方が良いと思う。もし、オーダメードで、完全に自分に合った椅子が生涯を通してメンテナンス出来るとしたら、その椅子に100万払ったとしても安い気がする。

椅子はイニシャルの値段だけ考えないでその後のメンテナンス可能な期間や値段。自分が椅子を利用する時間などを参考にして、欲しい椅子を考えたとしたらベスト椅子は安価な椅子なのか?ベターいいとしても、高い安いは考慮しなくていい気がする。

アーロンの気に入らないところもある、アーロンは首の支えが無いところが気にいらない。

10年以上使ってるけど、壊れたことないし、がたついたり、緩くなってる可動部もない。買った時は、10年座れば元が取れると思ってたけどまだまだ、使えそう。最近は、座面のメッシュのテンションが弱ってきたのと、座面の全面のウレタンぽいのが硬化してきたのでそのパーツを交換しようと思ってる。

10万を境に、高いのと安い椅子の5年後の経年変化や故障率を比べてみたい。樹脂パーツは、10年も持たない気がする。それも、脚部などの負担の掛かる部分では・・ 耐久性も重要な機能な気がする。

作者:a2c

更新日:2008年12月1日 9時10分

このブログのホーム

第0回 Python旅館 に参加中

とりあえづ、部屋はここです。

f:id:a2c:20081129171231j:image


Vimでペーストする際に、インデントを保つ方法

:set paste

Bitbucket.orgで鍵pushする方法

はじめに、公開鍵をbitbucket.orgに登録しておく

ローカル側の.ssh/configにbitbucket.orgの設定をする

Host bitbucket.org

Compression yes

HostName bitbucket.org

IdentityFile ~/.ssh/プライベートキー

User hg

キモは、ユーザー名がhgで決まりな事

cloneする。

hg clone ssh://hg@bitbucket.com/ユーザ名/リポジトリ名

ユーザーとリポジトリは自分のをつかうけど、ログインユーザーはhgを使うこと。

これで、出来るようになった。thx tmatsuo

Processingでまぁるい頭を四角化

size(200, 200, P3D);


float[] numbers = new float[3];
numbers[0] = 90.0;
numbers[1] = 150.0;
numbers[2] = 30.0;

float totalNumber;
totalNumber = numbers[0] + numbers[1] + numbers[2];

float[] raitos = new float[3];
raitos[0] = numbers[0] / totalNumber;
raitos[1] = numbers[1] / totalNumber;
raitos[2] = numbers[2] / totalNumber;

float durRad;

//centerPosX, centerPosY, sizeX, sizeY, startRad, endRad)
fill(150,150,150);
arc(width/2, height/2, width*0.8, height*0.8, -PI/2, (PI*raitos[0]*3)/2.0);
fill(200,0,0);
durRad = (PI*raitos[0]*3)/2.0;
arc(width/2, height/2, width*0.8, height*0.8, -PI/2 + durRad, ((PI*raitos[1]*3)/2.0) + durRad);
fill(0,0,200);
durRad += (PI*raitos[1]*3)/2.0;
arc(width/2, height/2, width*0.8, height*0.8, -PI/2 + durRad, ((PI*raitos[2]*3)/2.0) + durRad);

fill(190,190,190);
noStroke();
ambientLight(102, 102, 102);
directionalLight(126, 126, 126, 0, 0, -1);
translate(32,50,0);
box(30);

f:id:a2c:20081130020237p:image

作者:a2c

更新日:2008年11月29日 8時15分

このブログのホーム

こわれた・きーぼーど

1. アットマークがPの横にあるキーボード

2. カッコが1つ左にずれているキーボード

3. [Caps Lock]キーが威張っているキーボード

4. スペースがハーモニカ状態のキーボード

5. 利用方法の分からないキーのたくさんあるキーボード

6. 隅になるとキートップが細くなるキーボード

7. 指をくじく可能性の高いキーボード 同)腐ったキーボード

(via:http://member.wide.ad.jp/~sano/glossary/glossary.html)

あなたのキーボード壊れてませんか?

作者:a2c

更新日:2008年11月23日 12時11分

このブログのホーム

OSのforkというか、メモリ管理について理解が進んできた。

forkを調べていたら、メモリ管理に行き着いた。

頭の整理もかねて、今の理解を晒してみる。

fork時に何が起こっているのかを理解するには、CPUと仮想メモリと物理メモリの3つの挙動を考えれば、最低限の理解は出来そう。(あぁ、最近最中限やってないなぁ・・)

まず、CPU(=プログラム)はメモリ上にオブジェクト(変数とか、ファンクションとか、インスタンス)を展開して、計算したり保管していたりしている。

 プログラムから見た場合、このメモリというのは、物理メモリを直接いじらず、仮想メモリ*1を見ている。仮想メモリと物理メモリのやりとりや、書き換えはOSが担当している。OSは、プログラム起動時に、物理メモリ上に必要な領域を確保し、その領域を指し示す仮想メモリをプログラムに教える。プログラムは仮想メモリ*2にアクセスすることで、透過的に物理メモリにアクセスすることが出来る。

さて、あるメソッドをforkしたい場合は、OSに対してこの子をforkしますよと、プログラムはお願いする。すると、OSは、物理メモリの領域はコピーせずに、仮想メモリ*3だけをコピーして、子プロセスに教える。この時には、親プロセスも子プロセスも全く同一のメモリを参照していることになる。

fork後、どちらか(親か子)のプロセスがメモリーに対して書き換えを行おうとすると、OSは、ここで初めて、書き換えられる領域の物理メモリーを確保し書き換え*4が起こる。これによって、必要最低限のメモリーの増加で、プロセス間で別々のメモリーを扱っているような挙動をすることが出来る。また、物理メモリのコピーより仮想メモリのコピーの方がコストが安い。


こんな感じに、forkを理解した。

これを使っているであろう、pythonのmultiprocessingがどうやって実装されているのか調べていけばいい気がする。

っていうか、これ基礎知識な気がする。今頃調べてる自分がかなすぃ

*1:ページテーブル

*2:プロセスごとの仮想メモリ空間、Page Frame Number, PFN

*3:ページテーブル

*4:Copy On Write

作者:a2c

更新日:2008年11月23日 8時8分

このブログのホーム

java-jaに行ってみた。残り10分

昨晩たまたま六本木にいた所、“凄すぎるGree”でjava-jaの勉強会をやっているらしかったので言ってみました。

 会場に到着して、10分くらいで最後の人の発表が終わってしまい、いろいろ話を聞くことは出来なかった。みんなでお掃除して、15人くらい残ったメンバーとお茶しに近くのカフェに移動

 今回のjava-jaは、GUI周りの話だったらしくインターフェースの話も出来た。フレームワークも大切だけど、インターフェースもね!という話はしなかったけど、GUIを真剣に考えている人も居るというのが分かって、うれしかった。(PGな人って、マジョリティーに対してのGUIに関して若干無関心だったり、それはデザイナの仕事みたいな思考停止な人が、多いかなぁと感じていたので)

 java-jaの自重しない所を見に行ったつもりだったけど、今回は、とってもスマートな集まりでした。世界のY氏が、4時間でビール缶13本とかそういうのは、男気あふれるいい話です。

作者:a2c

更新日:2008年11月22日 5時25分

このブログのホーム