[過去ログ] FreeBSDを語れ Part44 [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
314
(1): 2017/08/11(金)02:56 AAS
> 64bitレジスタで高速化できる分野こそニッチじゃね

64bitになって、レジスタ数も倍増したのにほとんど高速化してないしな。
アプリによって数%速くなるだけ。
315: 2017/08/11(金)02:57 AAS
>> 293
> 64bitレジスタで高速化できる分野こそニッチじゃね
ちょっとアセンブラで組んでみるとわかるけど、32bitでは汎用レジスタが4本しかないので一時的に記憶
しておきたい値でもスタックに積まないといけないけど、そうするとPUSH/POPを頻繁に行わないといけなくなる。
繰り返し処理の中でこんなことをしていたら当然遅くなる。
64bitなら汎用レジスタが15本あるので、サブルーチン内で必要な一時変数を全部レジスタだけで
済ますこともできる。Cコンパイラなら汎用レジスタに一時変数を自動的に割り振ってくれるので、
同じ処理でもレジスタだけで処理できてしまう場合が多くなり、全体に速度が上がる。
316: 2017/08/11(金)03:08 AAS
>>314
アプリによるだろ
表計算ネット閲覧文字列処理くらいしかしない様なのには恩恵ないだろうけど
エンコレンダリングブルートフォースとか、64bitになるとえっらい速くなるぞ
レジスタの本数が増えただけじゃなくて、一時的に128bitの値のスケーリングとか
32bit時代は4つのintで騙し騙しスケーリングしてたのが、
2つの変数での自前の乗算除算で済む様になる
317
(1): 2017/08/11(金)03:16 AAS
RISCでコード書いたことあるなら分ると思うが32個レジスタあってもちょっししたコードでも瞬殺で使い尽くす。全く足りない。
しかし、今時のIntelのPush、Popのスループットは1clock、0.5clock。つまりL1データキャッシュ32KBがレジスタの代用として使えるレベル。
だから単純にレジスタ数を倍増してもわずかしか速度が上がらない。とっくの昔にPush/Popの遅さは隠蔽されてるから。
318: 2017/08/11(金)03:26 AAS
自動変数にアクセスする度にpushpopなんてしとらんぞ
32ビット時代ですらBPにSP入れて相対のアドレッシングで直接読み書き演算しとる
319: 2017/08/11(金)03:40 AAS
加算が1回とかメモリに対してやれば1clockでやってくれるが、
複雑な計算だとレジスタに移したほうが速くなる。
320: 2017/08/11(金)03:54 AAS
4本の汎用レジスタと2+1本のインデックスレジスタで事足りる用途じゃ早くならんが
複雑な計算し出したらx64の方が圧倒的に高速になる
ブラウザやらエクセルやらでx64速度上がらないとか言ってるようなのは何なんだろうな
4G以上使えるだけの32ビットCPUしか持ってない貧乏人が作れ作れわめいてるだけか?
321: 2017/08/11(金)04:05 AAS
ieやexcelはポインタこねくりまわすから64bit幅アドレスがキャッシュを倍の早さで食い尽くす。

今のところ圧倒例がエンコだけ。x264で10%程度。
しかし時代はエンコードもデコードもハード、GPUの時代。
IntelはAltera買収したからさらにハードでの処理が加速する。
322: 2017/08/11(金)04:25 AAS
WPAのクラックとかBFとかレンダリングとか、他にもいっぱいあるだろ。
しかも全員が全員、コーダー積んでるハード持ってる訳じゃないんだぞ。

んなニッチなもん誰も作らんわ 自分で作れ 作れないなら諦めろ。
323: 2017/08/11(金)05:24 AAS
>>317
PUSH/POPの命令発行クロックが小さくても、外部メモリへの読み書きはレジスタ内の読み書きに比べはるかに遅い。
命令を発行してからバスを通って読み出し、またバスを通ってレジスタにデータを得るまでの経路も長い。
レジスタ内で処理できればバスは関係なくなるし、外部メモリのクロックの遅さにも影響されずに処理できる。
確かにL1キャッシュにデータが入っている間は遅延は少なくて済むが、32個のレジスタで足りないほど多くの
データを扱うとなればL1キャッシュから外れるものも出てくる。プログラムの規模が大きくなればなるほどキャッシュに
ヒットしない場合が出てくる。そうなれば途端に遅くなる。
324: 2017/08/11(金)06:33 AAS
pushpopもクロック数の横に+nとか書いてある筈
レジスタ類にしか影響しないオペコードとオペランドの組み合わせの場合は
理論値通りのクロックで命令が終了するけど、
メモリアクセスが発生するオペコードだったりオペランドがメモリを指してたりする場合は
L1〜L3ヒット/ミスヒットでnの数値はどんくらいとか、
メモリがSDRAMの場合はキャッシュのライン読み込み完了まではストールとか、
別のデータ書き込み中に更にライトバックになったら終わるまで動けんとか、
詳細に計算式とか備考欄に書いてある筈だぞ

pushpopは必ずメモリアクセスが発生するから、L1にヒットするから1クロックとか
簡単に見積もれる話じゃないし、そもそもヒットするからって条件が付く事自体がおかしい
省1
325: 2017/08/11(金)06:44 AAS
筈だぞ
326: 2017/08/11(金)09:08 AAS
gdgd荒らしている様だが、要するに一生懸命「32bitでも64bitに対してそれほど
遅くない」ってだけで肝心のメリットが殆どないってのに、今さら誰が欲しがるかって。
下らないわ。
327: 2017/08/11(金)09:46 AAS
ごめん、何言ってるか分らない。
328: 2017/08/11(金)09:51 AAS
要するに

古事記<古いCPUでメモリいっぱいの旧型機に特化したビルドを俺様の為に作れ!
↑の為にx64否定、x86マンセーの嘘を垂れ流す
その他<うぜぇ

だろ
329
(1): 2017/08/11(金)10:06 AAS
何が合理的か語る場で古事記だの作れだの馬鹿にも程があるな
-m32通らないとか64CPUにi386入れたい理由なんて山ほどあるだろ
反論できなくなると荒らすとか何もかもレベル低すぎるぞお前
330
(1): 2017/08/11(金)10:07 AAS
もうi386サポート外にしようぜ
331: 2017/08/11(金)10:15 AAS
×「32bitでも64bitに対してそれほど 遅くない」
○「64bitでも32bitに対してそれほど 遅くない」
332: 2017/08/11(金)10:18 AAS
64bitは32bitに対して結構メモリ無駄にするけどな
333: 2017/08/11(金)10:22 AAS
>>329
-m32通らないならamd64で動かすしかないんじゃないか?
てか今時i386入れたい理由って具体的になんだよ
俺も>>330に賛成だよ

CPUがアドレス32ビットレジスタ64ビットサポートしないなら普通に64でいい
多少でかくても困らんし、世間で騒いでる奴なんてそんなにいない
1-
あと 669 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s