元スレCELL
cell覧 / PC版 /みんなの評価 : ○
301 = :
アルゴリズム自体が(ry
302 = :
>>300
なんでpadが8バイトなのかマジで自分でもわからないけど助言ありがとうです
>>301
それはいうなよ・・・
303 = :
サイズを128なのか、アドレスを128なのかで話は違うが
パフォーマンスって意味だとアドレス128だよな
とすると、pad[108]じゃ128バイトアライメントにならん希ガス
spe_params_t param __attribute__((aligned(128)))
とか
typedef struct{
unsigned long long sum __attribute__((aligned(128)));
(ry
にしないとだめじゃね
304 = :
>>301
まだとりあえず動かすってレベルなんだろう。
SIMD化とかすごく大変そうだけど。
>>303
>>300だけど、ソースの中で、spe_params_t param __attribute__((aligned(16)))
になっていたので、128と書いたよ。
typedef struct{
unsigned long long sum __attribute__((aligned(128)));
だと、構造体を沢山使うなら、アライメントの設定し忘れが無くなるからいいかもね。
305 = :
>>304
自動生成っていう便利なテクニックがあってだな
http://dango.chu.jp/hiki/?Enhanced+Bitslice+DES
xorとeqvを置換すれば1命令節約できる箇所があるのは知ってる。
306 = :
そもそもCell使ってる時点で何も期待できない
307 = :
typedef struct{
unsigned long long int sum;
char trip[11];
char pad[109];
} spe_params_t;
spe_params_t spe_params[SPE_NUM] __attribute__((aligned(128)));
に変えたけれどやはりバスエラー
spe_context_runが出力されないってことはまだ構造体がおかしいのかな?
309 = :
310 = :
CELLプログラミングやりたいなーと思ったらHDDフォーマットしてパーティション分けないといけないのか
めんどいな
311 = :
たったそれだけで出来るのに一体何が面倒?
評価キットだけでやるよかずっとましだろうに。
312 = :
あるゲームのセーブデータ99個作っててそれを1個1個USBメモリにコピーするのがめんどい
あ、フォルダごとコピーできたっけ
313 = :
ここはゲハじゃねえんだ。巣に帰れ。
つうかCell自体には何にも関係がないじゃねえかよ。糞ガキが。
314 = :
>>310
パテ切らなくてもUSBメモリーに入れる方法あるぞ
315 = :
Cで書いたマインスイーパーの盤面を列挙して
一番左上を最初にクリックしたらその盤面だと一発でクリアできるかどうかを調べて
全盤面について数え上げるプログラムをSPEで実行してみたら
(ほぼ(SPEのmainの書き方とか以外))同じコードでcore2duo E7400(2.8GHz)で実行したときにくらべて
3~4倍くらい遅かった
どんなコードでもローカルストア上だから速くなるとは限らないのかー
周りに爆弾0個の場合を再帰で開く部分を再帰じゃなくしてベクトル化すれば速くなるかもだけど
それはE7400でも同じだしなー
316 = :
と思ったらCELLのSPEって整数除算命令がないのか
爆弾の位置を(9x9の盤面で)0-80の整数で持って
一発で開くか調べる前に9x9の2次元配列に配置するとき9で割る除算してた
これのせいなのかなアセンブラ見てみるか
317 = :
SPEはSIMD化しないとまず速くならない。
あと、整数演算は得意じゃないのと、除算命令がないので、
整数はすべて浮動小数で扱い、9で割るなら0.11111111111111を掛け、
整数にキャストしてあげる方が速いはず。
318 = :
>>315
ソースコード見せて?
319 = :
そんなことしないと速くならないのか。
なんていうか人間的な仕事じゃない気がする。
320 = :
というか、実数より遅い整数演算って
何の為にあるのかわからんな。
321 = :
アーキテクチャ理解して使えよ。
CPUならx86と全部同じ構造だとでも思ってんのか?
322 = :
??
323 = :
隅々までアーキテクチャを理解する必要は無いが、
少なくともどんな処理が向いているかいないかを調べた方がいいぞ。
ちなみにCellのベクトル化とCore MAでのベクトル化では伸び率が全然違うから。
Cellの場合は単純に4倍とかならん。なぜか4倍以上になることが多い。
おかしなCPUだな。もちろんアプリによるけどな。
324 = :
PPEから値を送る→SPEで計算→結果をPPEに送って保存→PPEから値を送る
をしてるんだが、SPE側で結果をためることってできない?
325 = :
いくらでも変数用意すりゃいいんじゃねーの?
327 = :
SPEにPPE側のポインタの値を送ることってできますか?
328 = :
>>323
SIMD演算器しかなくて、スカラ演算を1スロットだけ使ってエミュレートしてるから遅い。
特に32ビット以下単位のデータ読み書きなんて最も苦手とする処理。常に128ビット単位でしか読み書きできないからな。
329 = :
>>327
MFCIOで送ればいいよ
ポインタっていうよりは実アドレスになるけど。
330 = :
DMA転送でポインタを送ってもだめ?
331 = :
>>330
ポインタってアドレスじゃん。
アライメントがとれていたらいいよ。
あっポインタのアドレスを送るなよ。
332 = :
>>324
SPU側で計算に使うべき値が既にあるのなら、SPUからDMA転送命令を発行して
順に値をとってきて処理すればいいんでないの?
なんかその書き方だと、SPUを待たせておいて、PPU側で必要なデータを一つ一つ生成、
それができ次第、順にSPU側へ渡していく、という風にも見えるんだけど。
333 = :
わざわざ、そうしてないんだから、次の計算に前の結果が必要なんだろ
334 = :
継続させたいならSPU主導で値を取りに行けばいいだけで、なんでわざわざPPUに
やらせようとするのか理解に苦しむ。
335 = :
理解できないなら書かなければいいのに
336 = :
SPUの使い方を正しく理解してないから、頓珍漢な使い方してるんだろう。
マヌケが。
339 = :
誰にも理解されないまま消えていったとさ
340 = :
6コアのx86が出ようとしている今CELLの存在理由は薄くなってきてるな
341 = :
同じ半導体投じればクアッドCellが作れるな
このくらいありゃRSXエミュしてもお釣りきそうなもんだが
PS3のワンチップ化どうすんだろうね
343 = :
Intelが3年たってようやくCell追いついたとも言える。
345 = :
http://www.jp.playstation.com/info/support/sp_20100329_ps3.html
346 = :
仮にあの規模でPPEも含めてAtom9個相当の性能があったとしたら
それはそれでかなり高性能だよ。
347 = :
Atom程もないから未満と言ってるわけだが
348 = :
それが分かっているから「仮に」と書いたのが読めないのかねぇ?
そもそも「Atom未満で6コア」なんて意味不明なことを書いておいて
それがCellを指していると理解してもらえるって思っていること自体が
間違ってるけどな。
350 = :
面倒なことはプログラマに全部押しつけます
たまたまハマる並列処理だけは得意だけど、WebやDBは早い遅い以前に動きすらしません
そんなCPUが許される市場じゃないんだよPCやサーバの市場ってのは
みんなの評価 : ○
類似してるかもしれないスレッド
- cellプログラミングしちゃいなよ3 (1001) - [18446744073709551533%] - 2009/1/27 2:23 ☆
トップメニューへ / →のくす牧場書庫について