10/09/26 16:32:06
>>964
> GCCって変数宣言すると自動的に初期化するってことですかね。
そのプログラムで偶々0だっただけ。つまりまぐれで動いていた。
982:デフォルトの名無しさん
10/09/26 16:41:15
すんません、結果ってあってますか?
983:デフォルトの名無しさん
10/09/26 16:44:19
gcc -O3 -ftree-vectorize -mmmx -mmmx
gcc version 4.3.4
この環境で実行してます。これだとmd5sumより微妙に早いです。
セレロンT1600デュアルコア1.66MHzです。
$ time ./hash 3
real 0m6.068s
user 0m4.522s
sys 0m0.327s
$ time md5sum 3
real 0m6.100s
user 0m1.497s
sys 0m0.327s
$ time sha256sum 3
real 0m6.069s
user 0m4.726s
sys 0m0.373s
因みに256ビットなのでsha256sumとも比べてみました。
別段早くないですね。
984:デフォルトの名無しさん
10/09/26 16:46:24
gcc -O3 -ftree-vectorize -mmmx -msse2
985:デフォルトの名無しさん
10/09/26 16:48:40
32bitのsse2やO3はちょっと抵抗あるな。調べないと正確には分からないけど普通はO2だろう。
986:デフォルトの名無しさん
10/09/26 16:49:53
s5関数の使い方、間違ってるみたいだけど
987:デフォルトの名無しさん
10/09/26 16:50:55
オゾンと酸素の違い
988:デフォルトの名無しさん
10/09/26 16:52:45
どう間違ってるんですか>s5
989:デフォルトの名無しさん
10/09/26 16:53:58
-msse2はFPUでなくSSEを使うという意味なので、浮動小数点演算しか速くならない。
sse使えと言ったのはアセンブリで書けと言う意味だ。
990:デフォルトの名無しさん
10/09/26 17:00:44
構造体直渡しって、出来たっけ
ポインタ渡しでやると結果が変わったんだけど
991:デフォルトの名無しさん
10/09/26 17:02:15
SSE2命令はSIMDで整数演算もサポートしてます。だから128ビットデータ
を高速化できます。基本的に行列演算なのでその部分も利用してます。
ていうか少しは速くなってるはず。
992:デフォルトの名無しさん
10/09/26 17:04:32
ポインタはデバッグしにくいから嫌い。
普通に共用体で渡せるんじゃないかな。
993:デフォルトの名無しさん
10/09/26 17:07:06
>>991
SSE2命令は整数演算もサポートしているけれど、gccはそれを使って整数演算を最適化しない。
"-msse2"って書いただろ。良く読め。
994:デフォルトの名無しさん
10/09/26 17:11:35
で、休日一日を費やして皆で悪戦苦闘の結果、
なんとも使い物にならない似非暗号化プログラムが出来上がったわけだが。
995:デフォルトの名無しさん
10/09/26 17:11:36
嫌いとか言ってる時点で...
s5の中の出る直前のccのダンプと
s5出たあとのccのダンプ比較してみたら
996:デフォルトの名無しさん
10/09/26 17:14:42
>>991
gcc -O2 -S 945.c; mv 945.s 945-nosse.s ;gcc -O2 -msse2 -S 945.c; cmp 945-nosse.s 945.s
アセンブラ吐かせても一行も異なっていないが、どういう原理で「少しは速くなる」んだよ。
997:デフォルトの名無しさん
10/09/26 17:14:52
どう渡すのが正しいの>s5
998:デフォルトの名無しさん
10/09/26 17:16:26
スレの残りも少なくなってまいりました。
誰か暗号化プログラム専用スレ立てれ。
999:デフォルトの名無しさん
10/09/26 17:17:55
院出じゃなかったのか?
宣言
void s5(on *cc);
呼び出し方
s5(&c1);
s5(&c2);
1000:デフォルトの名無しさん
10/09/26 17:18:00
問題だけ提示して0からソースコード書いた方が早いと思うんだが
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。