2008年2月23日土曜日

ループアンローリング

Cellで、ループアンローリングすると、5倍近く速くなったりすることが結構ある。でもなんでもかんでも、速くなるわけでもない。なんなんだろう?本当はアセンブラからみないといけないんだろうが、その技量とガッツまではないの。
simd演算にしてもそうだけど、手がかかるなあ。

2008年2月20日水曜日

探索問題

ひょんなことから、ある探索問題をCellで試してみることになった。
コードはいたってシンプルで、100行程度。はじめ普通のCで書くのに約1時間、Cell用のコードを書くのにやはり1時間くらいで書けた。
典型的な浮動小数点数演算の繰り返しがおもなものな計算なので、Cellでやると早い早い。

自分が知らないだけで、世の中こんな計算っていっぱいあるのかも知れないな。今回は探索問題を探索したわけで…

だれがうまいこといえって言った!

2008年2月18日月曜日

ゴートゥDMA!ゴートゥDMA!

ひさしぶりに、Cellのプログラムにどっぷりはまってる。

以前は、XDRを全然使ってなかったから、ちょっと使うように改造してるのだが…、あいかわらずDMA転送には苦労するよ、トホホ。


まあ、でもちょっとずつわかってきたかも。うほうほ。

2008年2月16日土曜日

リアルタイムCell

最近、Cellをリアルタイムに使える方法はないかと模索しているが、OSをどうすればいいのか、どうにもならんのかが、素人なのでよくわからん。

Linuxのカーネル2.6系はある程度、リアルタイム性を実現できるといううわさで、じゃあCellはいけるじゃんと思ったんだけど、全然情報がでてこないんだよなあ。

Cellでそういうことやろうっていう人結構いると思うんだけどなあ。なんででてこないんだろう。

やっぱこういうのは、FPGAでやった方がいいんだろうな。でもCellでやりて〜!

2008年1月24日木曜日

flopsねえ…

なんか思いっきり勘違いをしていた。

一般的に積和算は2flopsで計算するだね。何で8800gtが2命令同時実行できるのか、わからなくて調べたらそうらしい。Cellも一緒。

いろいろ調べてみて、flopsという尺度はちょっと考えもんだと思った。メモリも無視してるし。メモリの速度とかトポロジーとかをいれた尺度ってないのかな。

2008年1月23日水曜日

洗濯

洗濯は、洗い、すすぎ、その後脱水である。

洗い、とすすぎの間にもう一回なんかあった気がするんだけど、なんかなかったけ???

物事は3回くりかえしてものになるという嶋さんの話を読んで、ふと思った。
http://itpro.nikkeibp.co.jp/article/Watcher/20060419/235740/

2008年1月19日土曜日

cellさん御無沙汰です

ひさしぶりにCellのコードいじり。前にlibespe2用に書き直したんだけど、なにをどこまでやったかすっかり忘れてた。

DMA転送に問題があってちょくちょくハングする。はー、こういうのがあるんだよね、Cellちゃんは。

DMA転送の方式はいままで、SPE間の通信を行ってたけど、PPE経由に変更する予定だから、今の不具合はうっちゃったまま進もうかな。別に誰も困らんよな。

ところでひさしぶりにCellのコードを実行してみて、あらためて8800GTと比べてみたところ、ルンゲクッタの計算で6倍速度が違うことを確かめた。

cellはgcc使ってるから、xlc使うと多少早くなるかも知んないけど、まあcellが1.5倍早くなったとしてそれでも、4倍の違いがあって、カタログスペックの約2倍の違いとは差がある。

確かめてないけど、やっぱり超越関数の効果だなこれは。一回、超越関数抜いて計算すりゃわかるんだけど。暇があればやってみよう。