元スレcellプログラミングしちゃいなよ3
cell覧 / PC版 /みんなの評価 : ☆
1 = :
前スレ
Cellプログラミングしちゃいなよ2
http://pc11.2ch.net/test/read.cgi/tech/1183091522/
2 = :
Cell Broadband Engine 技術情報公開
http://cell.scei.co.jp/
PLAYSTATION3 Linux Information Site
http://cell.fixstars.com/ps3linux/index.php
The Cell Processor - PukiWiki
http://cell.fixstars.com/pukiwiki/index.php
developerWorks : Cell Broadband Engine resource center(IBMのCell技術情報)
http://www-128.ibm.com/developerworks/power/cell/
Cell Broadband Engine Architecture forum (Cellプログラミングの掲示板)
http://www.ibm.com/developerworks/forums/dw_forum.jsp?forum=739&cat=46
Multicore Programming Primer: PS3 Cell Programming
(マサチューセッツ工科大学のPS3を使ったマルチコアプログラム演習。ソースコードなど有り)
http://cag.csail.mit.edu/ps3/
CellPerformance
http://www.cellperformance.com/articles/
3 = :
一応たててみたもののスレタイみすった/(^o^)\
4 = :
>>1 乙。久しぶりに話題投下してみる。
あるshort値の配列があって、それをlog2()するような感じで指数が欲しい。
指数未満の値、つまり仮数部は四捨五入する。
また、マイナス値とプラス値は連続させて結果をコンパクトにしたい。
趣味で作ってるプログラムだから結果のフォーマットはこれ以外に変わっても構わない。
疑似コードで書くと、いまのところこんな感じの実装にしてある。
(short)round(log(abs(a))/log(2)) + (a > 0 ? 16 : 0);
で、これを最適化できないかなという話。
とりあえず2つ程考えてみたので貼ってみる。
5 = :
vec_short8 log2_1(vec_short8 v) {
static const vec_uchar16 vPack = (vec_uchar16)
{ 2, 3, 18, 19, 6, 7, 22, 23,
10, 11, 26, 27, 14, 15, 30, 31};
vec_short8 v1 = spu_splats((int16_t)1);
vec_short8 v0x100 = spu_splats((int16_t)0x100);
vec_uint4 vEven = (vec_uint4)spu_convtf(spu_mule(v, v1), 0);
vec_uint4 vOdd = (vec_uint4)spu_convtf(spu_mulo(v, 1), 0);
vec_uint4 vExpE = spu_rlmask(vEven, -22);
vec_uint4 vExpO = spu_rlmask(vOdd, -22);
vec_short8 vExp = (vec_short8)spu_shuffle(vExpE, vExpO, vPack);
vExp = spu_rlmask(vExp + spu_and(vExp, 1), -1); // round
vExp = spu_add(spu_and(vExp, 0xff), -126)
+ spu_rlmask(spu_andc(v0x100, vExp), -4); // sign
vExp = spu_andc(vExp, (vec_short8)spu_cmpeq(v, 0));
return vExp;
}
6 = :
vec_short8 log2_2(vec_short8 v) {
static const vec_uchar16 vPack = (vec_uchar16)
{ 2, 3, 18, 19, 6, 7, 22, 23,
10, 11, 26, 27, 14, 15, 30, 31};
vec_ushort8 v1 = spu_splats((uint16_t)1);
vec_ushort8 vIsPos = spu_cmpgt(v, 0);
vec_ushort8 vAbs = (vec_ushort8)spu_sel(-v, v, vIsPos);
vec_ushort8 vRound = (vAbs & ~spu_rlmask(vAbs, -2)) + spu_rlmask(vAbs, -1);
vec_uint4 vEven = spu_mule(vRound, v1);
vec_uint4 vOdd = spu_mulo(vRound, 1);
vec_uint4 vExpE = spu_sub(32, spu_cntlz(vEven));
vec_uint4 vExpO = spu_sub(32, spu_cntlz(vOdd));
vec_short8 vExp = (vec_short8)spu_shuffle(vExpE, vExpO, vPack);
vExp += (vec_short8)spu_and(vIsPos, 16); // sign
return vExp;
}
7 = :
>>6
同時に32個以上突っ込めるなら後者の方が良いな
8 = :
音声圧縮かな?
nop / lq
nop / shufb
csflt / shufb
csflt / shufb
nop / shufb
rlmaskbyte
とか妄想してみた
9 = :
>>7
その心は?
>>8
鋭いです。
ところでそのコード、シャッフルが一回多いような気が。
アンパックx2、パック、後は何?
10 = :
>>9
パック一回で十分だね
11 = :
CUDA本格的になってなんたらエンジン窮地に立たされる
12 = :
>>11
よくわかんねーよw
13 = :
>>11
大丈夫、スパースエンジンなんて最初っから立場がないから。
14 = :
Cell が GPU に敵う進化を続けられるかは別だが。
そもそもの HPC 的視点が、Cell は超並列プロセッサであり、GPU はハイパーSIMD/MIMD なわけだ。
それぞれに得意な分野があるから、どちらが滅んでどちらが栄えるという話ではない。
滅ばないとも言わないが。
15 = :
実際問題、超並列プロセッサっていっても、ハイパーSIMD/MIMDと変わらないような用途でしか使ってないだろう。
プロセッサがいくつかあって、すごいことがいつできるんだ。LinuxがSPEに仕事割り振れるようにでもなればなあ。
16 = :
ブロードバンドエンジンは内蔵されたホストCPUがPen4程度の低性能、
スパースエンジンは並列度が落ちた挙句にホストCPUが外付け。
某芝の目指す方向はどこなんだか。
17 = :
>>15
> 実際問題、超並列プロセッサっていっても、ハイパーSIMD/MIMDと変わらないような用途でしか使ってないだろう。
俺には単に、GPU での処理に向いたアプリケーションの、並列コンピュータからの置き換えが、まだまだ進んでいないだけのようの思える。
そいういう意味で無いなら、俺の知らない分野のことを言っているようだから、教えてくれると有り難い。
18 = :
つーか超並列はMIMDでしか作らない訳だが。
19 = :
Cellプログラミングをやろうと思い
PS3にxUbuntuをいれSynapticパッケージマネージャでCell-sdkとbinfbinfmts-supportを入れました。
spu-gcc でhello world
20 = :
途中で送信してしまいました
Cellプログラミングをやろうと思い
PS3にxUbuntuをいれSynapticパッケージマネージャでCell-sdkとbinfbinfmts-supportを入れました。
spu-gcc でhello worldを表示するプログラムをつくりコンパイルをするところまではできたのですが
いざ実行してみると
spu_create(): no such file or directory
spe_create_single: Bad address
とでてしまい実行できませんでした。
いろいろ調べても見たのですがこれといった解決策も見つからず途方にくれています。
原因をご存知の方がいらっしゃいましたら教えていただけないでしょうか。
22 = :
レス有難うございます
xUbuntuだと結局Cellやるのには問題多いんですかね・・・
軽いって話を聞いたんですけど。無理そうならFedoraにしときます。
23 = :
PS3で開発って辺りが結構無茶っぽい。
いいクロス開発環境ないのかねぇ。
24 = :
SPU用のバイナリのファイル名が違ってるか作られてないのでは?
俺のとこはxじゃないUbuntu7.10だけど問題なくセルフ開発できてる
25 = :
>>23
そうだよな
開発成果をBDまたは仮想BDで出力する環境が欲しい
26 = :
素直に一旦ゲーム屋に行けよw
28 = :
>>24,27
レスありがとうございます。
はじめに実行したときcannot execute binary file と表示されたのでSPU用のバイナリが原因かもしれません。
それを解決するためにbinfbinfmts-supportを入れてみたのですが・・・解決にはなってなかったかもしれないですね。
SPU用のバイナリについて勉強不足であまりよくわからないので調べてみたいと思います。
29 = :
SPU のは普通は直接起動できず,起動するのは PPU 用のバイナリ.
そこから spe_image_open と spe_program_load 使って load する.
さらに thread を 6つ創って spe_context_create, spe_context_run する.
SPU 用のバイナリを埋め込んじゃえば _open の方は要らない.
後,spu-gcc のオプションに -standalone を指定すれば,
直接起動できるプログラムを生成してくれたはず.
31 = :
仕事でやるんならそうだね
34 = :
自分も是非感想を聞きたい。
35 = :
誰かファイル操作についてのCの制御文?(printfのようなもの)知らない?
知ってる分だけ伝授してほしいです
36 = :
>>35
スレ違い。
37 = :
MARSってコンテキスト量減らせるだけ?
38 = :
MARSでやれるようなことは、GPGPUだとたぶん無理だと思う。こういうことにこそ、Cellの強みがあるんじゃないかな。
実際どれだけ使えるようになっているのかが問題だ。
39 = :
データの入れ替えには対応してないみたいだな。(まだ)
40 = :
CPUの省エネ、後編(CELL、BG/Lを参考に考える。)
http://www.ne.jp/asahi/comp/tarusan/main190.htm
電力消費量的にLSはよいと。うまくつかえればの話だけど。
それじゃあ、キャッシュとLSを二つ持って、使い分ければいいのかとも思うけど、
2つの使い分けを把握しないといけないから、煩わしさが増えると。
41 = :
「5年は追いつけないでしょう」──東芝が作るAVノートの新しい未来形・Qosmio G50の革新性とは
http://journal.mycom.co.jp/articles/2008/07/30/qosmio/001.html
通常
supers engine
これは結構いいな。
42 = :
問題はノートでここまでの要求があるかだが
43 = :
映画好きの人とか、結構、本気で欲しがるんじゃないか?
自宅で使うデスクノートとして。まあ、あくまでマニア需要かな。
でも、世間的に意外とこんなんで火がついたりとかありえそうな気もするが。
QosmioのSupersは直接いじれないらしから、すれ違いだけどね。
44 = :
アプリは自作用のカードに乗らないから色々なメーカーに期待するって……
自作用カード出しても、エコシステムが回るほどアプリが出てくる思えないな。
45 = :
Qosmio G50新兵器、SpursEngineがスゴすぎる件【前編】
http://ascii.jp/elem/000/000/157/157525/
NvidiaのGPUまわせば、SpursEngineいらないんじゃ…。
46 = :
The Barcelona Supercomputing Center has a new prototype
to investigate the supercomputing of the future
http://www.bsc.es/media/1762.pdf
Roadrunnerを超えるCellスパコンができるらしい。
47 = :
ついにベールを脱いだIntelのCPU&GPUハイブリッド「Larrabee」
http://pc.watch.impress.co.jp/docs/2008/0804/kaigai457.htm
Intel版Cellといろんなところで騒がれていますな。Cellとがちだけど、GPUとして
登場するところは大きな違いであり、?でもある。
48 = :
そろそろCellも次世代のバージョンの詳細がでてくるだろうか。2PPE+32SPEがでる
っていう情報はでてるけど、それ以上の話はまだなくて、今まさに検討中なんだろう。
Sonyが腰が引け気味で、Toshibaが違った方向に進みつつあり、IBMはHPC路線で突き進んでいる。
また、PS3の状況は、次世代Cellに大きく関わってくるんだろう。PS3の状況はよくなりつつあるが、
まだ厳しそうだ。次世代に向けて動き出すときこのときに、今のような不透明な状況であることが、
次世代のCellに一体どう作用するか…。Sonyの求心力が弱まることで、よりIBM主導のアーキテクチャに
進むのだろうか?果たして…。
49 = :
>>45
> Qosmio G50新兵器、SpursEngineがスゴすぎる件【前編】
>http://ascii.jp/elem/000/000/157/157525/
>
> NvidiaのGPUまわせば、SpursEngineいらないんじゃ…。
GPUでまっとうなC/C++使える日が来たらそうかもね。
みんなの評価 : ☆
類似してるかもしれないスレッド
- cellプログラミングしちゃいなよ4 (607) - [97%] - 2009/3/24 11:04 ○
- CELL鬯ッ?ゥ隰ウ?セ??ス??オ????コ?????ッCore2 QX6700鬯ッ?ゥ隰ウ?セ??ス??オ????コ???? (92) - [18446744073709551581%] - 2012/1/21 0:39
トップメニューへ / →のくす牧場書庫について