1 名前:デフォルトの名無しさん [2009/01/25(日) 02:16:01 ] 前スレ cellプログラミングしちゃいなよ3 pc11.2ch.net/test/read.cgi/tech/1215388508/l50
75 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:29:19 ] >>71 それもレイアウト次第じゃないか さっき言った様に32bit連続で配置されない場合もあるし
76 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:32:17 ] >>61 すまん、読み違えてたかも。 > 1つの乱数を表すデータが連続した32bitに存在するとは限らない の1つって、1回に作る 32bit の事だと思ってたんだが違ったかも。
77 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:33:52 ] >>75 ぬぉ、入れ違った。すまんかったっす。勘違いしてた。確かに、32bit 中に空きがある場合はだめっすな。
78 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:35:56 ] なんか、アンカーめちゃくちゃ。これは何かの暗号化?w
79 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:46:50 ] >>77 とりあえず納得してもらえてよかった 少しむきになってしまって恥ずかしい限り それはそうと結局Fixstars賞狙うことにしたけど倍率が気になる
80 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:47:29 ] 実行環境について特に触れてないけど、65nm版やPowerXCellを前提に ストール対策なしのコードを書いて、65nm版又はPowerXCellで実行して 下さいって書いたらそれで通るのかな?
81 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:49:09 ] 大丈夫。ここに書けば近いうちに 90nm で実行します、って追記されるw
82 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:50:30 ] >>80 倍精度でも使うのか?
83 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/28(水) 23:53:01 ] 履歴書に書けるんじゃね? ニートはとりあえず挑戦しとけ
84 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 00:12:15 ] >>66 元々 579 的な解+Cell最適化を想定していたのだけど、 普通に高速化する人が多くて、そういう人達が気分を 害しそうだから賞を追加した、ってのが真相な気がしてる。 空気の読めるインテリw
85 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 02:39:42 ] >>80 無限ストールバグがないだけで、ストール自体はある 無限ストールは普通ハマることはない
86 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 02:57:26 ] >>84 をぃをぃ逆だろ 実用に使える高速なMTが欲しかった >>579 なんて想定してなかった が真相
87 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 03:41:11 ] しかし >>579 の書いてた事は理解出来んのー。 嘘混ざってるせいなのか、単に自分がアホなのか。 GF(2^33)で計数はいいけど、そもそも何を集計すると tempering 的処理がループ外に追い出せるかが思いつかない。
88 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 05:31:02 ] 結局ハッタリって事なんじゃないの?なんかみんな揃って 引っ込みつかなくなってるようにしか見えないんだが…
89 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 08:33:12 ] 少なくとも、数学的チートの方法をこんなに大々的にばらされる事は 想定してなかっただろうなw ここ見てる人たちが次々とチート方法で提出してきて慌てたに一票
90 名前:22 mailto:sage [2009/01/29(木) 10:38:45 ] わかってないんだけど、 信号処理で、波形のままいじるか、周波数空間でいじって戻すか、の差みたいなもんでしょ? アフィン変換の4x4行列(の回転成分)とクォータニオンみたいなもんなんでしょ? 受け入れられない人の理屈が分からない。
91 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 10:53:04 ] 技術的に受け入れてない奴なんていないとおもうけど 単に乱数列を生成って公式に書いてたから抵抗があっただけでしょ 今となっては公式見解も出たしなんの問題もない
92 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 12:16:02 ] S = Temper(x1) ^ Temper(x2) ^ .... ^ Temper(xn) = Temper(x1 ^ x2 ^ ... ^ xn) ならともかく、「+」で出来るってのが俄かには信じ難い。
93 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 12:48:22 ] インラインアセンブラ使わないほうがフィクスタ賞に選ばれやすそうだな もともと禁止だったし
94 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 12:59:48 ] >>92 S = Mod32( GF33( temper(x1) ) * GF33( temper(x2) ) * ... * GF33( temper(xn) ) ) こうですか!?わかりません!教えてください!
95 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 13:29:33 ] いままで触れられてきたどの戦略も、一長一短だなおい。
96 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 13:41:37 ] >>93 なにその団子を入賞させるための賞
97 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 17:14:06 ] 質問です、cellのソフトウエアをcygwinでクロス開発仕様と思っています。 cellbe-cygwin.cvs.sourceforge.net/viewvc/cellbe-cygwin/ こちらのページのrpmを使って、spu-gccは無事インストールできました。 しかし、ppu-gccは $ rpm -i ppu-gcc-4.1.1-5.cygwin.i686.rpm error: Failed dependencies: ppu-sysroot is needed by ppu-gcc-4.1.1-5 ppu-sysroot64 is needed by ppu-gcc-4.1.1-5 と出てしまい、インストールできません。 ppu-sysroot-f7-2.noarch.rpmを探しだし、インストールしようと思いましたが、 $ rpm -i ppu-sysroot-f7-2.noarch.rpm warning: ppu-sysroot-f7-2.noarch.rpm: V3 DSA signature: NOKEY, key ID 77550217 package ppu-sysroot-f7-2 is intended for a linux operating system とでてしまい、やっぱり駄目です。いったいどうすればクロス開発ができるようになるでしょうか。
98 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 17:29:47 ] VMWareにでもLiunx入れたら?
99 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 17:38:25 ] PS3 買えば?w ゲームも出来るよwww
100 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 17:43:46 ] 確かにな。クロス環境を自力で作れない奴が入賞できるわけないしw
101 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 18:09:36 ] >>97 は別にコンテストに出場しているとは言っていないと思うけど
102 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 18:34:10 ] あ、ここってコンテストのスレじゃないんだっけw スマソ
103 名前: ◆iSaGiwaruI mailto:sage [2009/01/29(木) 22:13:25 ] 遅ればせながらギリギリでエントリ。
104 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/29(木) 22:28:58 ] リアルで大事件が起こって困惑中。二ヶ月先すら見えない状況ですorz >>90 2つの回転行列の補間をするのに、一度クオータニオンに戻して球状補間 するんじゃなく、行列同士を線形補完して直交させれれば終了、みたいな ショートカットが出来るって事ですよね? >>92 en.wikipedia.org/wiki/GF (2) ↑見てもさっぱり分からない罠。締め切り過ぎてからで良いんで、お勧めの 参考書とか有ったら教えてくださいな。
105 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:47:39 ] >>104 細かい事に突っ込んで悪いけど、それじゃ結果変わっちゃうので 例えとしてはいまいち。 「行列の積じゃなくてクォータニオンの合成で処理して行列に戻す」 とかがショートカット。
106 名前:579 mailto:sage [2009/01/30(金) 00:29:43 ] なんか席を外している間に fixstars はじまったな。 >>579 ざまぁwみたいな展開を期待していたのだが。 コード公開するタイミング失ったではないか。 >>90 >>104 ニヤニヤ >>33 >尤もハッタリだったら曝せないだろうけどなーwwww もう少し上手く煽れよ。。。
107 名前:579 mailto:sage [2009/01/30(金) 00:30:37 ] >>50 こうですね。わかります。 template<int s,int n,int p>struct M0; template<int s,int n>struct MT{enum{N=M0<s,n,(n>>31 )>::N};}; template<int s>struct M0<s,-624,-1>{enum{N=s};}; template<int s,int n>struct M0<s,n,-1>{enum{ P=M0<s,n-1,-1>::N, N=(1812433253UL*(P^(P>>30 ))+n+624)&0xffffffffUL}; }; template<int s,int n>struct M0<s,n,0>{enum{ P=MT<s,n-624>::N&0x80000000UL, Q=MT<s,n-623>::N&0x7fffffffUL, R=MT<s,n-227>::N, S=Q&1?0x9908b0dfUL:0UL, N=R^((P|Q)>>1 )^S}; }; template<int s,int n>struct T{enum{ P=MT<s,n>::N, Q=P^(P>>11 ), R=Q^(Q<<7)&0x9d2c5680UL, S=R^(R<<15)&0xefc60000UL, N=S^(S>>18 )}; }; template<int s,int n>struct S; template<int s>struct S<s,0>{enum{N=0};}; template<int s,int n>struct S{enum{ N=(unsigned)S<s,n-1>::N+(unsigned)T<s,n-1>::N&0xffffffffUL}; };
108 名前:227 ◆eZQcaIaFJs mailto:sage [2009/01/30(金) 00:41:47 ] >>105 チートしないと60fps出ない環境なんで、誤魔化せる所を探すのに必死です。 今日も境界判定のif文取ったり、エルミート補間を線形補間にしたりとかw >>107 残念ながらC言語onlyな大会でございます。 ja.wikipedia.org/wiki/ %E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%A1%E3%82%BF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
109 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/30(金) 00:43:00 ] コンパイラが氏ぬwww
110 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/30(金) 00:44:09 ] fixstarsはメタプログラミングって使わないんだろうか? テンプレートによる再利用は俺も大好き
111 名前:579 mailto:sage [2009/01/30(金) 00:46:35 ] >>86 つmc_rand_mt_u4
112 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/30(金) 00:53:18 ] MTの本質は均等分布性にあるんであって数値の出る順番は本質じゃないと思うんだ 実際64ビット用MTは32ビット版と生成する値の互換をとってない。
113 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/30(金) 00:57:18 ] んで、ビットの配置方法が違っても分布の均一性は変わらないわけで 極端な話トランザム(笑)でも再利用性があると思う
114 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 02:20:33 ] まだ登録できたのか
115 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 02:26:21 ] 多分、団子はふぃっくすたーずの中の人から盛り上げるように頼まれてる。
116 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/30(金) 04:19:00 ] 中の人も一応は最新のIntelチップ相手だと分が悪いのは認識してるらしい。 (当たり前だ) 性能を引き出すことは、弱点を認識することから始まる。
117 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 07:01:33 ] >性能を引き出すことは、弱点を認識することから始まる。 私の現場だと、最早「無駄な努力」と言われてしまう罠。 先日AMDの営業に話を聞いたのだけど、NVIDIAやIntelとの比較でしか性能を語れてないの。 ちょっと同情したw
118 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 10:45:49 ] 未だに13Cycleの壁と闘ってるんだがこのあたりってもうだれもおらんのか? みんなこっちの道をあきらめてSUMを直接求める方向に行ってくれてるならそれはそれでいいんだけど そっちの方向はいくら頑張っても数学に弱いやつは勝てなさそうなんで早々にあきらめてしまった
119 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 11:52:50 ] >>118 比較的素直なSIMD実装でも頑張れば12切れる。
120 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 11:57:47 ] >>119 まじで! じゃあ本番は11台入ってからか 先は長いな
121 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 13:00:17 ] 項数爆発。こりゃだめだ・・・やり直し。
122 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 15:15:37 ] お前ら楽しそうだな・・・ 次があったら俺も参加したいぜ
123 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 17:16:18 ] 今からでも遅くはないZE! 応募だけしてみたら?
124 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 20:30:44 ] 私も参加賞狙いwで応募だけしてみました。
125 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:25:04 ] >>103 そのトリすげぇなw
126 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:33:48 ] トリップって狙って取れるもんなの?
127 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:38:48 ] こら、そんなこと言うと五月蠅いのが飛んでくるぞ
128 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/31(土) 00:28:48 ] ところで、優勝とフィクスタ賞を同時に狙う方法ってあるんじゃないの?
129 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/01/31(土) 00:35:02 ] おっしゃ拡大体でトランザムktkr
130 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 05:38:29 ] うわさをすればなんとやら
131 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 06:01:15 ] あるかもしれんがそのトランザム次第じゃね 間違ってもO(1)で解ける様な話だとまず不可能だろ
132 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 11:22:12 ] ところでフィクスタ賞って乱数がレジスタに現れるだけじゃだめなのか? 配列に格納・関数の戻り値など などが何かはわからんがこれを見る限りじゃかなり厳格にやらないといけないかもしれんな フィクスタ賞は規定を満たす中で一番高速なのが選ばれるってわけでもなさそうだし 配列に格納はまだしも関数の戻り値なんてやってたら大分コスト掛かりそうだ
133 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 11:53:12 ] レジスタに現れるだけで実用性あるのかよ
134 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 12:00:06 ] stqd入れるだけで出力可能って意味でかなり目標に近いとは思うが そうじゃなきゃ完全にフィクスタ賞だけを狙うコードをつくらないといけないな
135 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:22:36 ] 実用的っていうのも中の人の主観で決まることだから、悩んでも無駄だろ。 そんなのよりも優勝目指そうぜw
136 名前:質問です mailto:sage [2009/01/31(土) 13:41:23 ] cell.fixstars.com/ps3linux/index.php/Cell_SDK_3.0%E3%82%92%E5%B0%8E%E5%85%A5%E3%81%99%E3%82%8B この手順に習ってVirtualPCにインストールしたfedora9でCell SDK 3.0をインストールしたのですが、ppu-gccで error:libspe2.h :No such file or directory が出てしまいます。 libspe2.hはいったいどこにあるのでしょうか・・・
137 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:47:56 ] locate libspe2.h してみれば
138 名前:質問です mailto:sage [2009/01/31(土) 13:59:32 ] /opt/cell/sysroot/usr/include/libspe2.h と返ってきました。 標準のインクルードパスに加えるにはどうしたらいいのだろう・・・。
139 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:31:31 ] 試してないからだめかもしれないけど、環境変数 INCLUDEへのpathの追加とかは? だめなら、とりあえずはコンパイル時のオプションで指定しとけば? -I /opt/cell/sysroot/usr/include/
140 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:52:12 ] >>135 優勝目指したいけど勝てる気がしないんだw だって無茶な実装は3倍速なってるとか言う噂がが
141 名前:質問です mailto:sage [2009/01/31(土) 15:02:17 ] >>139 どうもありがとうございます。 単にMakefileの中身がppu-gccではなくgccになっていただけでした。 大変失礼しました
142 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:17:23 ] 団子のハッタリに惑わされているようじゃ参加賞止まり。
143 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/01/31(土) 21:15:16 ] ハッタリだと認識してるようじゃ参加賞止まり
144 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:37:52 ] だんごって学生部門に登録してるんだろ? この中の何人が学生部門なんだろうな 意外と社会人より学生のほうが人数多いかもね
145 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/01(日) 01:39:47 ] だれが学生部門じゃ
146 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:47:16 ] 前にそんなこと言ってなかったっけ
147 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 07:06:43 ] >>146 デマだよ。デマゴーゴスだよ このスレ自体がな
148 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 10:28:39 ] コンテスト終了後なら、ソース見せてくれる? 純粋に興味がある。
149 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/02/01(日) 11:14:53 ] ところでアセンブラ組はフィクスタ賞は諦めてるんだろ? むしろ眼中にないんだろ? ニヤニヤ
150 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 11:55:57 ] いつぞやの693だけど俺はアセンブリ組 正直どうしたもんかね 俺も少し前に書き込んでた人間と同じくレジスタにだけ乱数が出現する状態だ Even,Odd共に1サイクルの空きも無いから配列にはき出すコード埋めるだけでもオーバーヘッドがかかる このままやってても優勝が難しい様ならフィクスタ賞向けのコードに書き換えなくちゃいかんのだが… 乱数のレイアウト変更した方もある程度の設計はしたものの思った程速くならない プログラムとしては前者の方が気に入ってるから出来ればそっち出したいな >>147 ゴマソースだよ。
151 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 12:04:51 ] それはそうとだんごは学生部門じゃなかったんだな それは非常に助かる
152 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 12:20:18 ] 今までの言動からすると、団子が本当のスタートラインに 立ててるかは疑わしいわけだがw
153 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 12:34:19 ] >>152 フィクスタ賞できたから、遅くってもフィクスタ賞狙いだったって言い訳はできるなw 団子には是非優勝を狙ってると宣言して欲しいものだw
154 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 12:56:00 ] 再利用性にこだわってたからフィクスタ賞狙いでも別にいいけどね フィクスタ賞とりつつ優勝者を上回るコードを締切と同時に公開したらかこいい
155 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/02(月) 06:20:26 ] 10パターンくらい用意しててどれにするか迷ってる状態。 >>152 そう思わないとつらいことでもあるんですか?(笑)
156 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 06:25:31 ] 10パターンってw 一番速いのか一番実用的なの 一番アルゴリズムが綺麗なの 3つ位しか選ぶ基準が思い浮かばねえ
157 名前:,,・´∀`・,,)っ-●◎○ mailto:sage [2009/02/02(月) 06:50:49 ] 何度も言ってるが出力が互換であることは実用性とはまったく関係ない。
158 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 08:09:45 ] ならなおさら10パターンも思い浮かばないな 一番速いの選べばおk
159 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 09:00:29 ] そこそこの性能を出しつつネタに走るとか
160 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 09:39:19 ] >>157 デコードに何十種類もかかるフォーマットじゃなければな
161 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 09:40:36 ] 何十種類→何十サイクル 一体どんな残念な事が頭の中に起こってこの単語が出てきたんだ…
162 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 09:57:59 ] IOCCCばりのネタプログラムを希望する
163 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 10:02:10 ] >>160-161 ビット配列がどうなっていようと乱数は乱数なんだぜ。 たとえば公式のMTの64bit専用版は32ビットと生成式が違う ビットの配列構造が違ってても乱数は乱数なんだ。 たとえば、32ビット乱数32個を行列転置したら乱数じゃなくなるのか?
164 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 10:21:53 ] 多分レイアウト変更組がやってることってのはそれだよね みんな薄々気づいてただろうけど結局こうなったな 確かに転置したところで乱数であることには変わりはないね で、それを読みだすのに何サイクルかかる?って話だよ それとも0bit目を32個集めてそれも乱数って言ってる?
165 名前:202 mailto:sage [2009/02/02(月) 10:26:06 ] >>164 MTの場合、それでも乱数といえそうな気がする。 bit単位のランダム性が特徴のひとつだから、ビットを特定の順序に並べ替えるだけなら ランダム性が崩れない。
166 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 10:30:33 ] >>164 ん?0ビット目を32個集めても乱数として使えるだろ? 同じサマリになるようにしろってのはフィックスターズの都合であって 現実にモンテカルロなどに使う場合はビット単位でのランダム性を破壊するような改変でない限り 十分実用的といえる。
167 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 10:54:57 ] そうか 理解不足で混乱させてすまん って事はフィクスタ賞も危ういなぁ 純粋な互換で勝負するのは無理があるか
168 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/03(火) 03:45:54 ] herumi氏が苦戦してるの見ると小気味良いな
169 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:00:52 ] >>129 あ り え な い 。それは。 GF2^33で tempering 処理を80%近くまで外部化してやらないと、そのトランザムは出来ない。 仮にビット単位の数え上げをMacWilliams恒等式で集中計算しても、ハミング距離が使えないその段階では mod2^32 変換行列が手に入れられないはず。 妄 想 で つ か ? とりあえず SIMD でループを大量にアンロールして合計値にどんどん足していけ。 アセンブラならABIに従ってレジスタ値取っておくのを忘れんなよ。説教くさくなってスマソ・・・。ついな・・・。
170 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/03(火) 04:14:25 ] キョッキョッキョッキョッキョ
171 名前:デフォルトの名無しさん [2009/02/03(火) 04:29:05 ] スレ違いだったらごめんなさい。。 きく人がいなくてここに辿り着きました。 for ( i = iv->dim; i < new_dim; i++ ) iv->ive[i] = 0; こんな感じの構造体のループって普通にSIMD化できるんですか? 構造体とかよく分からなくて…汗。
172 名前:デフォルトの名無しさん [2009/02/03(火) 04:30:51 ] それと、 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 ] 最後に、 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 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/03(火) 04:48:10 ] なんだそのやる気のない記法は。 outとdpのアドレスを16バイト境界にあわせられない理由がある? 最悪ストアだけでいいから16バイト境界にあわせること。 合わない部分はループの外に吐き出してOK。
175 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/02/03(火) 05:01:17 ] 16バイトにアラインメントされてるかを検定する方法を知らないとか言わないよな? >outとdpは引数で、16バイトにアラインメントされてるか分からなかったので、 >この方法しか思いつかなかったのですが、何かこれじゃ余計遅くなるような気がして;; 判定方法が解らないとか言わないでくれよ? ループ回数が十分大きければ、ループの外側での条件分岐はトータルの計算時間に大した影響は無い。 (address + 15) & ~15 などとして、16バイト境界を検出する。 んで、16バイト境界に合った区間だけのSIMD化を検討しる。 >>173 ならねぇwww そもそもaの指す実体は何だよ そいつがアラインメントされてるかどうか次第だ