- 1 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 08:55:08 ]
- 前スレ
Cellプログラミングしちゃいなよ2 pc11.2ch.net/test/read.cgi/tech/1183091522/
- 474 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 04:12:17 ]
- 好きに使っていいレジスタって何番〜何番だっけ
なんかコンパイラが予約してるとことかあった気がするんだけどどの資料を見たのか忘れてしまった
- 475 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 05:59:54 ]
- >>474
ttp://cell.scei.co.jp/j_download.html 「SPU Application Binary Interface Specification」の 「2.2.1 レジスタ」(日本語だと P8) の表
- 476 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 06:08:38 ]
- >>475
ありがと 普通にR80〜を使ってた なんか普通に動いてるけどたまたまなのかコンパイラが退避してくれてるのか… できるだけR10〜79位を使う様にするかな
- 477 名前:202 mailto:sage [2009/01/18(日) 10:56:45 ]
- >>476
拡張インラインアセンブリ構文を勉強すると良いよ。 コンパイラにどのレジスタ使うか教えると、変数割り当てがかぶらないように してくれたり、必要ならレジスタ退避もやってくれる。
- 478 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 12:15:37 ]
- 敢えて言う。
俺には無理。
- 479 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 18:13:28 ]
- nop/lnop を入れると早くなる謎。レジスタの依存関係は無さそうやし、
LSの帯域制限とかいう隠れ仕様でも有るのかなぁ…。
- 480 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:39:43 ]
- 隠れ仕様なんかじゃないよ。もっと勉強しましょう。
- 481 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 19:01:48 ]
- これ以上性能伸ばすにはOddパイプの命令数削減する方法を本気で考えないといけなくなった。
#トップを目指してる人はどういう状況かわかるよな?
- 482 名前:202 mailto:sage [2009/01/18(日) 19:27:18 ]
- >>481
wwww
- 483 名前:202 mailto:sage [2009/01/18(日) 19:28:25 ]
- >>479
dual-issueとかじゃなく?
- 484 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 19:29:49 ]
- 策はある。足りないのはメモリ。
- 485 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 19:49:31 ]
- >>483
ちょっと違うっぽい。nop+lnopを入れると1クロックのロスで済むものの、 何も入れないと2クロックストールしてるような感じです。 >>481 今のところ Odd 余ってるんやけどなぁ…。まさか限界突破したとかorz
- 486 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 19:51:25 ]
- ループ後半のどうでもいいようなところしか余ってない。
無理になんか処理入れたら逆に性能低下するし、そろそろ別の方針が必要っぽい #意地でもCでがんばるぞ
- 487 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:04:38 ]
- >>485
ヒント欲しい?w
- 488 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 20:12:08 ]
- 今なら言うけど、>>394は限界ではない
ラチェクラとか作った会社がまとめたSPU命令のレイテンシ一覧あったんで貼っておきますね。 なんでこういうわかりやすい資料が公式に無いのか疑問。 www.insomniacgames.com/tech/articles/0907/spu_instruction_cheat_sheet.php
- 489 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:15:02 ]
- まーた、フカシが始まったよ… なんで黙ってられないんだろう。
- 490 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 20:24:07 ]
- 別に信じなくてもいいが、現実を受け入れなきゃ優勝が無い、それだけの話だ。
↓これはまだパイプラインに余裕があったときのスコア。 spu-gcc43 -std=gnu99 -O3 -g -c -o mt_mine.o mt_mine.c spu-gcc43 -Wl,-Map,mt_kadai.map mt_kadai.o mt_mine.o mt19937ar.sep/mt19937ar.o -o mt_kadai ./mt_kadai ORIGNAL: sum=3c927c56, 294032967 ticks MINE: sum=3c927c56, 4967580 ticks ORIGNAL: sum=2e987a4d, 424158953 ticks MINE: sum=2e987a4d, 7165990 ticks ORIGNAL: sum=ef1b6aef, 312105208 ticks MINE: sum=ef1b6aef, 5272912 ticks ORIGNAL: sum=eedd2516, 290057341 ticks MINE: sum=eedd2516, 4900408 ticks ORIGNAL: sum=f7e967a8, 14366933 ticks MINE: sum=f7e967a8, 242775 ticks ORIGNAL: sum=1f37a7db, 214217873 ticks MINE: sum=1f37a7db, 3619145 ticks ORIGNAL: sum=c7d41f36, 294966530 ticks MINE: sum=c7d41f36, 4983349 ticks ORIGNAL: sum=aa9d2e9f, 259567100 ticks MINE: sum=aa9d2e9f, 4385307 ticks ORIGNAL: sum=8abd398a, 250846200 ticks MINE: sum=8abd398a, 4237963 ticks ORIGNAL: sum=a374bd58, 6110333 ticks MINE: sum=a374bd58, 103279 ticks
- 491 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:30:40 ]
- こんなとこに情報出しまくる奴にも優勝はないと思うw
- 492 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 20:32:00 ]
- だろうね。用心深いから常に古い情報ばっかし出してる。
- 493 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:32:48 ]
- それで大丈夫と思ってる井の中の蛙は負けると思うw
- 494 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:33:22 ]
- お前らひがみはみっともないぜ
- 495 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 20:33:44 ]
- いったい誰に負けるって?
- 496 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 20:36:40 ]
- >>490
またCに戻って戦略練り直しかorz チキンレース面白いから大歓迎だけどw
- 497 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:36:47 ]
- 井=2ch
蛙=団子
- 498 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 20:38:49 ]
- 敢えて言う、これは出来レースだ。
- 499 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:43:09 ]
- 負けた時の言い訳ですね。わかります。
- 500 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 20:45:33 ]
- ん?俺が勝ったか負けたかをどうやって確認する気だ?wwwwww
じゃあ予想だけしておこう。 優勝者は、13clk/qwordを、切る。
- 501 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:46:17 ]
- つまり切ったんだな
- 502 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:51:00 ]
- 2人参加が優勝してたらまず団子だろw
- 503 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:52:47 ]
- なんか・・・インパクトに欠ける予想だな・・・
- 504 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 20:53:02 ]
- >>500
今の実装でも (Odd + Even) / 2 < 13clock だから否定は出来ないなぁ…。
- 505 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:54:00 ]
- 2人参加が優勝したら、両方名前&社名出すようにfixstarsに働きかけようぜw
- 506 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 20:55:19 ]
- >>504
多いほうの命令ひとつ減らすのに、少ないほうの命令が3つくらい増える悲惨な事態に陥ってますが。
- 507 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:01:59 ]
- ってか、2人参加の片割れがfixstarsの関係者かも知んなくね?
- 508 名前:202 mailto:sage [2009/01/18(日) 21:09:55 ]
- >>506
判る判るw もう、1サイクル減らすとかじゃなくて、0.3サイクルとか0.25サイクルずつ減らす 領域なんだよね。
- 509 名前:202 mailto:sage [2009/01/18(日) 21:13:02 ]
- >>507
fixstars 関係者は参加できないよ。 中の人は、仕事の片手間に応募者より速いコードを目指して実装中。 たぶんまだ5M切れてない。 このスレみてガクブルしてるよw
- 510 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:14:45 ]
- 参加できないんだから、参加してない事を証明しなきゃダメだろ。
ってことは、チームの場合も両方名前&社名出さないと。
- 511 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 21:45:34 ]
- >>509
そんなしょーもないことしてどうすんねん 優秀な学生の確保と活力ある社会人の引き抜きが目的だろ
- 512 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 21:48:52 ]
- うーむ・・・もはや手詰まりか
- 513 名前:202 mailto:sage [2009/01/18(日) 21:53:45 ]
- >>511
別に非関係者装って参戦してるとかそーゆーんじゃなくて、純粋に遊びで 挑戦してるらしいよ。 Cellのプロフェッショナルとしてのプライドをかけたお遊びねw マイミクのfixstars社員に「社内で5M切った奴いる?」って訊いてみたら?
- 514 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 22:08:32 ]
- まあプロが俺に負けるわけにはいかんだろうがなぁ
- 515 名前:202 mailto:sage [2009/01/18(日) 22:21:31 ]
- ちょ、だんごさん4.8M切ってるのか。スゲー!
- 516 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/18(日) 22:31:34 ]
- そこは驚くところじゃない
まだ上はいるんじゃね?何となく。
- 517 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 22:52:28 ]
- >>473のコードを1命令変更しただけで4.8M切れたw
さて、これをアセンブラに移してループの調整でも始めるかな。
- 518 名前:,,・´∀`・,,)っ-○◎● mailto:でもなかったりする sage [2009/01/18(日) 22:56:16 ]
- だんごやさんピーンチ
- 519 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 23:02:30 ]
- >>518
ちょっとワロタ。14cycleの時は1位との差が10000tick行くか行かないかの所まで 詰められたけど、ここまで来るとさすがに自信無いなぁ…。
- 520 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:24:58 ]
- >>479
実は載ってるところ少ないんだけど8サイクル以上位連続でロード/ストアしようとするとストールした記憶がある そこでいったんぶった切ってoddでそれ以外の事するかあけてしまった方が速くなったりとか 自分も去年かおととし気づいたことなんで厳密な事は覚えてないんだけど
- 521 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:52:56 ]
- ↑の制限は8サイクルよりは長いよ。でも 227 はそんな load/store はしてないと思う。
- 522 名前:202 mailto:sage [2009/01/19(月) 00:53:11 ]
- >>520
へぇ。 命令のバッファが空になるとLS命令をストールさせて命令をフェッチする とかそういうのがあるのかな?
- 523 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 01:10:02 ]
- >>520
SPEのLSはポート一個しか無いので、DMAやload,storeが頻発すると、命令フェッチができなくなる場合がある。 Handbook の 3.1.1.3 に、優先度は、 DMA > load,store > 命令フェッチ と書いてある。 命令フェッチが必要な場合は、hbrp命令すると優先度が上げられる。 詳細は、 ttp://cell.scei.co.jp/j_download.html 「プロセッサにおける命令枯渇に起因する Synergistic Processor Elementの無限ストールの防止について」 あたりに書いてある気がするが、読んでもよくわからん。
- 524 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/19(月) 01:16:02 ]
- とりあえず詰ませてみたけど、asmvis 見てもどこでストールが起きてるのか
分からない状態。片っ端から nop/lnop 入れて検証するのかぁ…orz >>521 カンで16か20とみた。調子に乗ってループ展開しまくっていた頃だから、 知らない間にリミットを追えてしまったのかもしれませんね。
- 525 名前:202 mailto:sage [2009/01/19(月) 01:23:42 ]
- >>524
分岐ヒント命令のレイテンシが15cycleだから、それ以下の可能性が高い。 12cycle=24命令か8cycle=16命令分でオチるんじゃないかな。
- 526 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 01:42:57 ]
- >>523
DMA 用と load/store & ifetch 用の2ポートだった希ガス。 今回は DMA 関係ないけど、DMA は待たせられないからね。 で、load/store と ifetch でポート共有してるから、ifetch が ストールしないように、load/store は続けちゃだめよ、と。
- 527 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/19(月) 08:09:41 ]
- 謎のデチューン(笑)で性能改善された説明になるな。
メモしておこう
- 528 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 12:42:42 ]
- 学生でやってるけど10倍すらキツい
アセンブラ命令と複数対1命令で対応している組み込み命令は どの程度コンパイラによる最適化の影響を受けるの? 基礎的な知識が圧倒的に足りていない件・・・orz
- 529 名前:,,・´∀`・,,)っ[昼はカレー] mailto:sage [2009/01/19(月) 12:44:00 ]
- 要するに128バイト分の命令(32命令)をこなす間に8サイクル以上
LSにロード・ストアしないタイミングを確保すればいいらしい。 完全にEven/Oddが同時実行されてる場合はロード・ストアが1バッファあたり8命令を越えるとアウト。 2命令同時発行できないサイクルがあったりすれば1バッファを使いきるサイクル数が17以上に延びるので、その分は延びる。 たとえばEven側20命令、ロード・ストア12命令の32命令でも、バッファのフィルに必要な8サイクルを確保できる。
- 530 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 14:13:31 ]
- >>529
Handbook によると 「SPU instruction prefetches are 128 bytes per cycle.」 らしいので、32命令中に1サイクル空きがあればいいはず。
- 531 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 14:14:19 ]
- >>528
結果さえ同一ならバカ正直に「SIMD版MT」を実装する必要がない
- 532 名前:デフォルトの名無しさん [2009/01/19(月) 14:17:58 ]
- >>530
bitじゃなくてbyteかよ
- 533 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 14:30:33 ]
- そういえばDMAと命令フェッチが同じバスなんてことが書いてあるような
- 534 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 15:24:33 ]
- >>531ありがとうございます。>>209で言ってたようなことかな・・・
もういちど見直してみます
- 535 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 15:45:38 ]
- >>533
>>526 じゃなくて?
- 536 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 16:12:20 ]
- >>530,532
LS の読み書き単位が 128byte だからね、たしか。 ただ、読み込み自体は 1cycle で終わっても、SPU の pipeline は 結構深くて、15cycle くらい前に fetch されてないとダメなはず。 他にも ifetch 起動条件とか色々あるよ。どっかに資料あると 思うけど、リンクとか張らないでみんな自力で頑張ろうぜw
- 537 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/19(月) 18:04:15 ]
- www2.vipper.org/vip1074688.png.html
上から下までこうなってないところ捜す方がしんどい
- 538 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:47:38 ]
- あ、当たり前では?
- 539 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:50:30 ]
- 俺も参加したいけど、どうせなら1位2位を争いたい。
でも団子屋さんみたいな暇人じゃないから勝てるわけもないので高みの見物。
- 540 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/19(月) 19:51:04 ]
- ひまじんとはしつれいな
- 541 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 20:30:21 ]
- >>531
それ考えてるんだけど思いつかないんだよな アルゴリズム同じのまま使う命令の入れ替えと並び替えで15サイクルまでは来れたんだけど しかも現状じゃ隙間は残ってるのに依存性で詰められないところがあってもったいない ここにいる優勝候補さんたちは社会人部門だと信じてる
- 542 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/19(月) 21:46:33 ]
- __builtin_expect()使っても意味ねー
つか遅くなる
- 543 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 21:49:36 ]
- !!!いままで使ってなかったんか!!!w
- 544 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 21:50:14 ]
- 今さら?
__builtin_expectでぐぐりゃそんな事例出てくるだろ。
- 545 名前:v127251.ppp.asahi-net.or.jp mailto:sage [2009/01/19(月) 21:54:45 ]
- だんごうぜー
- 546 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/19(月) 21:59:07 ]
- ふゅーじゃーねいざん?
- 547 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/19(月) 22:00:15 ]
- ループ内側の最適化は投げ出して、外側の整形作業に移るとしますか。
知らない間にリアルが2末マイルストーンとか言う無茶苦茶な事に なってたんで、現実逃避も程々にしとかないとマジでヤバイかも。。。
- 548 名前:デフォルトの名無しさん [2009/01/19(月) 22:00:49 ]
- なんで、こんなところに節穴がいるの?
- 549 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/19(月) 22:03:18 ]
- 俺の日記はリアルGateKeeperがよく読んでるけどね
- 550 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/19(月) 22:12:55 ]
- 今更になって>>389見て幻滅してきたorz メモリが無いと勝てる気がしない…。
- 551 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/19(月) 23:17:44 ]
- 15,000tick削減成功
いけるところまでやるか
- 552 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/20(火) 00:57:49 ]
- とりあえず、>>389の一歩手前までたどり着いたのは良いんやけど、ここに
なって拡張アセンブリが使い物にならない(>>458)事がハンデになってくる とは思わなかったorz >>551 まだ3日ほど楽しめそうですよw
- 553 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/20(火) 01:35:27 ]
- >>552
一歩手前じゃなかったっぽい。見れば見るほど>>389が神に見えてきたorz
- 554 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 01:38:13 ]
- >>517 は何だったの?w
- 555 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/20(火) 01:56:24 ]
- >>554
99.91%の壁の高さを痛感しているだけですよ、たぶん。
- 556 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 02:17:10 ]
- あー、>>389 の前提がおいらとは違うのか。
>>551 を見て >>389 は最適化途中だっただけと見てたんだが。
- 557 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 11:58:58 ]
- 素人だけど参加
命令書き換えとか、なかなか上手くいかないけど楽しいわコレw
- 558 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 16:16:18 ]
- >>557
命令自己書き換え(self modification)してんの? 仕様書に書いてあるけど、その場合は sync しなきゃ だめだからあんま早くならない気がするなぁ…
- 559 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/20(火) 17:53:14 ]
- 【Oddの】命令数削減法思いついた
- 560 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 19:24:19 ]
- 何命令くらいの所で頑張ってるんだろう?
自分はもうこれ以上削れる気がしないけど…
- 561 名前:202 mailto:sage [2009/01/20(火) 19:56:42 ]
- だんごさんそのうち4M切りそうだなw
- 562 名前:202 mailto:sage [2009/01/20(火) 20:24:17 ]
- いや、でも4.7Mの壁は今までの壁と比べても相当キツイな。
提出日まで頑張っても超えられない気がしてきた。
- 563 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/20(火) 20:45:21 ]
- なんですか4.7Mの壁って
- 564 名前:202 mailto:sage [2009/01/20(火) 20:49:02 ]
- >>563
余裕で切ってるってことかーーー!!! マジで勝てる気がしねー。
- 565 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/20(火) 22:03:02 ]
- 逆に遅くなったorz
- 566 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:08:50 ]
- だんご優勝できなかったらブログ閉鎖の方向でよさそうなのかな?
- 567 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/20(火) 22:13:22 ]
- なんでやねん
逆に優勝しちゃうといろいろまずいことならあるが
- 568 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:23:08 ]
- 3Mの壁が・・・。イチからやり直すか・・・orz
- 569 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:30:49 ]
- 16Gくらいメモリ使ったんですか?w
- 570 名前:202 mailto:sage [2009/01/20(火) 23:24:43 ]
- >>568
3Mって、、、俺らと同じ基準なら化け物スコアだな。
- 571 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/20(火) 23:29:48 ]
- >>557
でも今日は酔っぱらってて自己書き換えの実装出来ないんだなー。 明日時間有ったら挑戦してみる。
- 572 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/20(火) 23:34:44 ]
- 30Mの勘違いの予感
- 573 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/20(火) 23:59:18 ]
- いつの間にか FAQ 更新されててワロタ
> デクリメンタのオーバーフローを利用することは可能ですか? > 今回の出題の趣旨に反するので不可能とします。
- 574 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 00:03:08 ]
- 不可能ではないと思うんだ。
|

|