私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレcellプログラミングしちゃいなよ3
cell スレッド一覧へ / cell とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
インラインアセンブラ版動いた。
効率はこれから詰めていくけど、とりあえず適当な詰め方でも98%行く。
デバッグが超面倒だった。
これからインラインアセンブラに手を出す人にヒント。
.balign 16
というディレクティブを使って、命令のアドレスを16byte境界にalignしないと、
Dual-issue ねらってた命令が全部single-issue になってしまう。
めっちゃ遅くなって、間違ってループカウンタ壊したかと思った。
効率はこれから詰めていくけど、とりあえず適当な詰め方でも98%行く。
デバッグが超面倒だった。
これからインラインアセンブラに手を出す人にヒント。
.balign 16
というディレクティブを使って、命令のアドレスを16byte境界にalignしないと、
Dual-issue ねらってた命令が全部single-issue になってしまう。
めっちゃ遅くなって、間違ってループカウンタ壊したかと思った。
>>453
俺だって元組み込み屋だ。volatileの意味くらい知ってる。
でも、ひょっとしたら、register volatile vector unsigned va; とか書いたら、vaが適当な
レジスタに固定でマッピングされてくれないかなと思って実験してみたくなるのは判るだろ。
俺だって元組み込み屋だ。volatileの意味くらい知ってる。
でも、ひょっとしたら、register volatile vector unsigned va; とか書いたら、vaが適当な
レジスタに固定でマッピングされてくれないかなと思って実験してみたくなるのは判るだろ。
>>454
その道のプロの方でしたか。これは失礼いたしました。
> vaが適当なレジスタに固定でマッピングされてくれないかな
幾らハッキングが好きなゲーム屋だからと言って、割り込みから
メインスレッドのレジスタ葬るような事はやったこと無いなぁ…。
その道のプロの方でしたか。これは失礼いたしました。
> vaが適当なレジスタに固定でマッピングされてくれないかな
幾らハッキングが好きなゲーム屋だからと言って、割り込みから
メインスレッドのレジスタ葬るような事はやったこと無いなぁ…。
SPUのABI仕様書読んでみると面白いね。
vector型をメンバに持つ構造体も、レジスタ本数に余裕がある限りレジスタ上に展開できる。
これによって複数の返値を持つことができる。
SSE(VC++)だと構造体を返値にすると無条件でスタック返しになってたような。
vector型をメンバに持つ構造体も、レジスタ本数に余裕がある限りレジスタ上に展開できる。
これによって複数の返値を持つことができる。
SSE(VC++)だと構造体を返値にすると無条件でスタック返しになってたような。
なんか手詰まりの予感orz
mt_mine.c:93: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [mt_mine.o] Error 1
mt_mine.c:93: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [mt_mine.o] Error 1
拡張アセンブラが腐ってたっぽい感じです。レジスタの待避まで手動でやれば
大丈夫になるのかなぁ…?
大丈夫になるのかなぁ…?
今まで仕事でHTCできなかったから今から本気出す
ASM禁止→解禁のごたごたの間に手を出さなかったのは逆に勝ち組なんじゃね
ASM禁止→解禁のごたごたの間に手を出さなかったのは逆に勝ち組なんじゃね
さあそれはどうだか
少なくとも細かいチューンでの対決に持ち込めば勝てる自信がある・・・かもしれないね
少なくとも細かいチューンでの対決に持ち込めば勝てる自信がある・・・かもしれないね
だんごさんの優勝はもう決定事項なのか。。。
アイデア出すたびにガンガン速くなってた時期と違って、5M近くにたどり着くと
苦行になってきたな。
1%未満の調整は投げ出して提出する時期かも。
下馬評では、1位だんごさんで、2位は俺と>>227の対決か。
チキンなので俺のticks数は書けない。
苦行になってきたな。
1%未満の調整は投げ出して提出する時期かも。
下馬評では、1位だんごさんで、2位は俺と>>227の対決か。
チキンなので俺のticks数は書けない。
好きに使っていいレジスタって何番~何番だっけ
なんかコンパイラが予約してるとことかあった気がするんだけどどの資料を見たのか忘れてしまった
なんかコンパイラが予約してるとことかあった気がするんだけどどの資料を見たのか忘れてしまった
>>474
http://cell.scei.co.jp/j_download.html
「SPU Application Binary Interface Specification」の 「2.2.1 レジスタ」(日本語だと P8) の表
http://cell.scei.co.jp/j_download.html
「SPU Application Binary Interface Specification」の 「2.2.1 レジスタ」(日本語だと P8) の表
nop/lnop を入れると早くなる謎。レジスタの依存関係は無さそうやし、
LSの帯域制限とかいう隠れ仕様でも有るのかなぁ…。
LSの帯域制限とかいう隠れ仕様でも有るのかなぁ…。
これ以上性能伸ばすにはOddパイプの命令数削減する方法を本気で考えないといけなくなった。
#トップを目指してる人はどういう状況かわかるよな?
#トップを目指してる人はどういう状況かわかるよな?
ループ後半のどうでもいいようなところしか余ってない。
無理になんか処理入れたら逆に性能低下するし、そろそろ別の方針が必要っぽい
#意地でもCでがんばるぞ
無理になんか処理入れたら逆に性能低下するし、そろそろ別の方針が必要っぽい
#意地でもCでがんばるぞ
>>485
ヒント欲しい?w
ヒント欲しい?w
今なら言うけど、>>394は限界ではない
ラチェクラとか作った会社がまとめたSPU命令のレイテンシ一覧あったんで貼っておきますね。
なんでこういうわかりやすい資料が公式に無いのか疑問。
http://www.insomniacgames.com/tech/articles/0907/spu_instruction_cheat_sheet.php
ラチェクラとか作った会社がまとめたSPU命令のレイテンシ一覧あったんで貼っておきますね。
なんでこういうわかりやすい資料が公式に無いのか疑問。
http://www.insomniacgames.com/tech/articles/0907/spu_instruction_cheat_sheet.php
別に信じなくてもいいが、現実を受け入れなきゃ優勝が無い、それだけの話だ。
↓これはまだパイプラインに余裕があったときのスコア。
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
↓これはまだパイプラインに余裕があったときのスコア。
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
ん?俺が勝ったか負けたかをどうやって確認する気だ?wwwwww
じゃあ予想だけしておこう。
優勝者は、13clk/qwordを、切る。
じゃあ予想だけしておこう。
優勝者は、13clk/qwordを、切る。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / cell スレッド一覧へ
みんなの評価 : ☆類似してるかもしれないスレッド
- cellプログラミングしちゃいなよ4 (607) - [97%] - 2009/3/24 11:04 ○
- CELL鬯ッ?ゥ隰ウ?セ??ス??オ????コ?????ッCore2 QX6700鬯ッ?ゥ隰ウ?セ??ス??オ????コ???? (92) - [18446744073709551581%] - 2012/1/21 0:39
トップメニューへ / →のくす牧場書庫について