1 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 08:55:08 ] 前スレ Cellプログラミングしちゃいなよ2 pc11.2ch.net/test/read.cgi/tech/1183091522/
458 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/17(土) 02:31:13 ] なんか手詰まりの予感orz mt_mine.c:93: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <gcc.gnu.org/bugs.html> for instructions. make: *** [mt_mine.o] Error 1
459 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/17(土) 03:57:00 ] 拡張アセンブラが腐ってたっぽい感じです。レジスタの待避まで手動でやれば 大丈夫になるのかなぁ…?
460 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/17(土) 14:30:48 ] まさにチキンレースだな。 究極的には両方のパイプを埋めきるまでやるんだろこれ。
461 名前:sage [2009/01/17(土) 14:58:35 ] 団子さんは今どんなスコアですか? 今までの勢いだと4.5M切ってたりして…
462 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/17(土) 15:40:52 ] そろそろ詰んだかも
463 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 16:17:21 ] 今まで仕事でHTCできなかったから今から本気出す ASM禁止→解禁のごたごたの間に手を出さなかったのは逆に勝ち組なんじゃね
464 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 16:27:20 ] >>202 >>227 >>団子厨 が優勝争ってるんでしょ〜〜 結局だれがいちばん強いわけ? どれくらいとればこの人たちに勝てるかおしえて
465 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/17(土) 16:31:54 ] たぶん一番上の項目で5Mくらい出せれば準優勝狙えると思うよ 優勝は無理だろうけどね。
466 名前:464 mailto:sage [2009/01/17(土) 16:40:34 ] >>465 SUGEEEEEEEEEE自信だけど自分はどれくらいまで行けそうなの? もし準優勝すらできなかったら何してくれんの? まぁおれは7M切るので精一杯だから関係ないけど。。。
467 名前:202 mailto:sage [2009/01/17(土) 18:21:39 ] >>465 つまり、だんごさんは5M切ったとw
468 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/17(土) 19:19:57 ] さあそれはどうだか 少なくとも細かいチューンでの対決に持ち込めば勝てる自信がある・・・かもしれないね
469 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 20:54:41 ] 60倍越えたんですね。わかります。
470 名前:464 mailto:sage [2009/01/17(土) 21:46:34 ] だんごさんの優勝はもう決定事項なのか。。。
471 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 00:43:53 ] インラインアセンブラを駆使しても>>389 に勝てないという現実orz 今日一日アセンブラ触ってみて、gcc43の凄さを感じ取れました。
472 名前:202 mailto:sage [2009/01/18(日) 00:57:32 ] アイデア出すたびにガンガン速くなってた時期と違って、5M近くにたどり着くと 苦行になってきたな。 1%未満の調整は投げ出して提出する時期かも。 下馬評では、1位だんごさんで、2位は俺と>>227 の対決か。 チキンなので俺のticks数は書けない。
473 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/18(日) 01:13:21 ] >>472 インラインアセンブラ使用前で5119021。
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 しなきゃ だめだからあんま早くならない気がするなぁ…