のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,837人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレcellプログラミングしちゃいなよ4

    cell スレッド一覧へ / cell とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    151 : デフォルトの名無 - 2009/02/01(日) 12:04:51 (+57,+29,-19)
    それはそうとだんごは学生部門じゃなかったんだな
    それは非常に助かる
    152 : デフォルトの名無 - 2009/02/01(日) 12:20:18 (+125,+29,-14)
    今までの言動からすると、団子が本当のスタートラインに
    立ててるかは疑わしいわけだがw
    153 : デフォルトの名無 - 2009/02/01(日) 12:34:19 (+70,+29,-22)
    >>152
    フィクスタ賞できたから、遅くってもフィクスタ賞狙いだったって言い訳はできるなw
    団子には是非優勝を狙ってると宣言して欲しいものだw
    154 : デフォルトの名無 - 2009/02/01(日) 12:56:00 (+57,+29,-58)
    再利用性にこだわってたからフィクスタ賞狙いでも別にいいけどね
    フィクスタ賞とりつつ優勝者を上回るコードを締切と同時に公開したらかこいい
    155 : ,,・´∀`・, - 2009/02/02(月) 06:20:26 (+74,+29,-8)
    10パターンくらい用意しててどれにするか迷ってる状態。

    >>152
    そう思わないとつらいことでもあるんですか?(笑)
    156 : デフォルトの名無 - 2009/02/02(月) 06:25:31 (+57,+29,-33)
    10パターンってw
    一番速いのか一番実用的なの
    一番アルゴリズムが綺麗なの
    3つ位しか選ぶ基準が思い浮かばねえ
    157 : ,,・´∀`・, - 2009/02/02(月) 06:50:49 (+91,+29,-19)
    何度も言ってるが出力が互換であることは実用性とはまったく関係ない。
    158 : デフォルトの名無 - 2009/02/02(月) 08:09:45 (+57,+29,-39)
    ならなおさら10パターンも思い浮かばないな
    一番速いの選べばおk
    159 : デフォルトの名無 - 2009/02/02(月) 09:00:29 (+57,+29,-5)
    そこそこの性能を出しつつネタに走るとか
    160 : デフォルトの名無 - 2009/02/02(月) 09:39:19 (+76,+29,-5)
    >>157
    デコードに何十種類もかかるフォーマットじゃなければな
    161 : デフォルトの名無 - 2009/02/02(月) 09:40:36 (+57,+29,-9)
    何十種類→何十サイクル
    一体どんな残念な事が頭の中に起こってこの単語が出てきたんだ…
    162 : デフォルトの名無 - 2009/02/02(月) 09:57:59 (+41,+13,-4)
    IOCCCばりのネタプログラムを希望する
    163 : デフォルトの名無 - 2009/02/02(月) 10:02:10 (+13,-29,-128)
    >>160-161
    ビット配列がどうなっていようと乱数は乱数なんだぜ。
    たとえば公式のMTの64bit専用版は32ビットと生成式が違う
    ビットの配列構造が違ってても乱数は乱数なんだ。

    たとえば、32ビット乱数32個を行列転置したら乱数じゃなくなるのか?
    164 : デフォルトの名無 - 2009/02/02(月) 10:21:53 (+133,+30,-63)
    多分レイアウト変更組がやってることってのはそれだよね
    みんな薄々気づいてただろうけど結局こうなったな
    確かに転置したところで乱数であることには変わりはないね
    で、それを読みだすのに何サイクルかかる?って話だよ
    それとも0bit目を32個集めてそれも乱数って言ってる?
    165 : 202 - 2009/02/02(月) 10:26:06 (+70,+29,-33)
    >>164
    MTの場合、それでも乱数といえそうな気がする。
    bit単位のランダム性が特徴のひとつだから、ビットを特定の順序に並べ替えるだけなら
    ランダム性が崩れない。
    166 : デフォルトの名無 - 2009/02/02(月) 10:30:33 (+80,+29,-48)
    >>164
    ん?0ビット目を32個集めても乱数として使えるだろ?
    同じサマリになるようにしろってのはフィックスターズの都合であって
    現実にモンテカルロなどに使う場合はビット単位でのランダム性を破壊するような改変でない限り
    十分実用的といえる。
    167 : デフォルトの名無 - 2009/02/02(月) 10:54:57 (+57,+29,-18)
    そうか
    理解不足で混乱させてすまん
    って事はフィクスタ賞も危ういなぁ
    純粋な互換で勝負するのは無理があるか
    168 : ,,・´∀`・, - 2009/02/03(火) 03:45:54 (-1,-29,-10)
    herumi氏が苦戦してるの見ると小気味良いな
    169 : デフォルトの名無 - 2009/02/03(火) 04:00:52 (+11,-29,-115)
    >>129
    あ り え な い 。それは。
    GF2^33で tempering 処理を80%近くまで外部化してやらないと、そのトランザムは出来ない。
    仮にビット単位の数え上げをMacWilliams恒等式で集中計算しても、ハミング距離が使えないその段階では
    mod2^32 変換行列が手に入れられないはず。 妄 想 で つ か ?
    とりあえず SIMD でループを大量にアンロールして合計値にどんどん足していけ。
    アセンブラならABIに従ってレジスタ値取っておくのを忘れんなよ。説教くさくなってスマソ・・・。ついな・・・。
    170 : ,,・´∀`・, - 2009/02/03(火) 04:14:25 (+52,+29,-26)
    キョッキョッキョッキョッキョ
    171 : デフォルトの名無 - 2009/02/03(火) 04:29:05 (+3,-30,-51)
    スレ違いだったらごめんなさい。。
    きく人がいなくてここに辿り着きました。

    for ( i = iv->dim; i < new_dim; i++ )
    iv->ive[i] = 0;

    こんな感じの構造体のループって普通にSIMD化できるんですか?
    構造体とかよく分からなくて…汗。

    172 : デフォルトの名無 - 2009/02/03(火) 04:30:51 (+3,-30,-164)
    それと、


    register int i;
    for ( i = 0; i < len; i++ )
    out[i] = s*dp[i];

    上の様なコードをSIMD化したかったら、

    vector float *out_v, *dp_v;
    for(i = 0; i< len/4; i++){
    out_v[i] = vec_misaligned_load(*(out + i*4));
    dp_v[i] = vec_misaligned_load(*(dp + i*4));
    out_[i] = spu_mul(spu_splats(s), dp_v[i]);
    vec_misaligned_store(out_v[i], *(out + i*4));
    }
    for(i = 4*(len/4); i < len; i++){
    out[i] = s*dp[i];
    }

    こんな風にするしかないんですか?
    outとdpは引数で、16バイトにアラインメントされてるか分からなかったので、この方法しか思いつかなかったのですが、何かこれじゃ余計遅くなるような気がして;;
    173 : デフォルトの名無 - 2009/02/03(火) 04:36:49 (+39,-30,-123)
    最後に、
    for ( i = 0; i < px_size; i++ )
    px_pe[i] = i;
    がSIMD化可能とコンパイラに言われたのですが、適切なintrinsicsが思い浮かびません。どうSIMD化できるのでしょうか?

    あと、signed int **a __attribute((aligned(16)));
    と宣言したら、**a, **(a+4), **(a+8),...が16バイトにアラインメントされてることになりますか?

    長くて&初歩的な質問ばかりですみません。
    よろしくお願いします。
    174 : ,,・´∀`・, - 2009/02/03(火) 04:48:10 (+69,+29,-33)
    なんだそのやる気のない記法は。
    outとdpのアドレスを16バイト境界にあわせられない理由がある?

    最悪ストアだけでいいから16バイト境界にあわせること。
    合わない部分はループの外に吐き出してOK。
    175 : ,,・´∀`・, - 2009/02/03(火) 05:01:17 (+104,+29,-141)
    16バイトにアラインメントされてるかを検定する方法を知らないとか言わないよな?

    >outとdpは引数で、16バイトにアラインメントされてるか分からなかったので、
    >この方法しか思いつかなかったのですが、何かこれじゃ余計遅くなるような気がして;;

    判定方法が解らないとか言わないでくれよ?
    ループ回数が十分大きければ、ループの外側での条件分岐はトータルの計算時間に大した影響は無い。

    (address + 15) & ~15 などとして、16バイト境界を検出する。
    んで、16バイト境界に合った区間だけのSIMD化を検討しる。



    >>173
    ならねぇwww
    そもそもaの指す実体は何だよ
    そいつがアラインメントされてるかどうか次第だ
    176 : デフォルトの名無 - 2009/02/03(火) 05:06:15 (+12,-30,-104)
    >174さん

    あ、すみません。少なくともoutは代入されるだけなので16バイトにアラインメントしても問題ないですね。

    dpの方が理解できないのですが、引数として貰ってくるものなので…いつアラインメントすればいいのでしょうか?
    宣言された後で、dp __attribute__((aligned(16)))って書けば行列の中身も全部グッと(?)移動するものなんですか?

    よろしくお願いします。
    177 : デフォルトの名無 - 2009/02/03(火) 05:13:45 (+76,+29,-68)
    >175さん
    同時にアップしてたみたいです;;前の質問消しておきます。

    なるほど!そうやってSIMD化するんですね!コード書きなおしてみます…。
    どうもありがとうございます。

    aの指す実体…。う~ん、実はポインタ一週間前に覚えたばかりなんです。汗
    ちょっと考えてからまた質問させていただきます。
    ありがとうございます。
    178 : ,,・´∀`・, - 2009/02/03(火) 05:16:14 (+3,-30,-135)
    言ってる意味がわからん。
    dpの配列の実体はダレが決めるの?君以外が決めるの?
    君が自由に決めることができるなら、その配列に、alignオプションを指定しておきなさい。
    自由にならないのなら、交渉しなさい。

    駄目なら、そこではじめてミスアラインロードを検討すればいい。
    __attribute__((aligned(16)))という指定は、配列の定義を指定された通りにデータを配置されるというもので
    元々あるデータ配置を移動するものではない。

    ポインタにalignやってもポインタ型が16バイト境界に配置されるだけで
    実体は実体の定義通りに配置される。
    179 : ,,・´∀`・, - 2009/02/03(火) 05:17:08 (+57,+29,-14)
    ポインタ理解してないのにSIMDとか無茶ですから
    180 : デフォルトの名無 - 2009/02/03(火) 05:31:20 (+86,+29,-3)
    なんだかんだ言って親切だな。
    181 : デフォルトの名無 - 2009/02/03(火) 05:34:33 (+3,-30,-173)
    ありがとうございます。
    meschachというライブラリの中のループをSIMD化しているところなんです。プログラム自体をあまり理解してなくて。。

    あと、また質問なのですが、SPEプログラムで実行時間を測りたい場合って、SPU Decrementerでprof.star()とかやるしかないですか?
    これってCELLシミュレーター上でしか使えないですよね?
    #include <time.h>でclock()とか使ってみたんですけど(ps3上で)、エラー出たので、サポートされていないのかなと。

    よろしくお願いします。
    182 : ,,・´∀`・, - 2009/02/03(火) 05:38:35 (-2,-30,-62)
    time.hは使えない。

    SPU DecrementerはPS3やSpursEngine上のSPU実機でもつかえる。

    183 : ,,・´∀`・, - 2009/02/03(火) 05:43:55 (+69,+29,-3)
    >>180
    ば・・・ばか!だんごやさんはもっと殺伐としてるべきなんだよ!!!!11111
    184 : デフォルトの名無 - 2009/02/03(火) 05:47:30 (+57,+29,-22)
    え、PS3上でも使えるんですか!?何でエラーが出るんだろう…。涙
    ありがとうございます。
    185 : デフォルトの名無 - 2009/02/03(火) 08:05:13 (+57,+29,-11)
    根本的にスキルが足りてない気がするが……
    ツンデレ団子がフォローしているから任せておくかw
    186 : デフォルトの名無 - 2009/02/03(火) 11:44:22 (-6,-29,-3)
    団子さんはherumi氏を超えた!
    187 : デフォルトの名無 - 2009/02/03(火) 19:40:21 (+51,+28,-2)
    しかもはるか斜め上!!
    188 : デフォルトの名無 - 2009/02/05(木) 13:55:16 (+57,+29,-20)
    ダンゴさんのネタ切れでスレが沈静化したな
    189 : デフォルトの名無 - 2009/02/05(木) 14:24:50 (+52,+29,-1)
    荒らすな。団子のせいにするな。
    190 : デフォルトの名無 - 2009/02/05(木) 14:55:40 (+3,-28,-30)
    んじゃネタ振り。

    「任意の n に対し O(1) 解は存在し得ない。」

    がんばって O(n) 最適化しよう。
    191 : デフォルトの名無 - 2009/02/05(木) 15:07:57 (+0,-28,-18)
    o(n)とO(n)が別物と最近知った俺には
    ちょとむつかしすぎる問題だ
    192 : デフォルトの名無 - 2009/02/05(木) 15:08:52 (+0,-28,-7)
    正直現状で構わん。やってたこと荒らしと変わらないし。

    >>190
    n<=INT_MAXに限ればあり得るだろ?速度はさておき。
    193 : ,,・´∀`・, - 2009/02/05(木) 15:09:06 (-1,-29,-1)
    そこはO(log(n))解を探せよチキン
    194 : デフォルトの名無 - 2009/02/05(木) 15:25:55 (+44,+26,+0)
    おしまい
    195 : デフォルトの名無 - 2009/02/05(木) 15:54:06 (+2,-29,-6)
    O(n)に実質的に落ち着くんじゃないの?
    196 : デフォルトの名無 - 2009/02/05(木) 16:09:43 (-1,-29,-12)
    ×O(n)に実質的に落ち着くんじゃないの?
    >>195がO(n)のロジックしか思いつかない
    197 : デフォルトの名無 - 2009/02/05(木) 16:39:07 (+30,-10,-3)
    俺はO(n)で優勝する気満々だからおk
    198 : デフォルトの名無 - 2009/02/05(木) 16:39:47 (+57,+29,-25)
    ヒントを書かせようとしてる奴がいるな。
    そんな奴はもう参加賞で我慢しる。
    199 : デフォルトの名無 - 2009/02/05(木) 16:55:41 (+19,-12,-29)
    >>197
    無理だね。

    気づいた人もいるだろうけど、O(n)を切るロジックは、ある。
    200 : デフォルトの名無 - 2009/02/05(木) 17:07:23 (+0,-28,-15)
    どうしてもCellっぽく書けない・・・
    これじゃまるでHack the MTだ。orz
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / cell スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について