[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/23 20:39 / Filesize : 188 KB / Number-of Response : 807
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】高速化手法【SSE】



1 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 02:55:36 ]
C++やインラインアセンブラ、SSEなどによる高速化の手法
について語りましょう。

783 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:09:32.88 ]
>>780
お前バカだろ
みんなアセンブリ前提で言ってんだよ

jze label   if() {
・・・処理・・・
labeli     }


784 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:12:25.76 ]
>>782
ん?尤も(もっとも)か?無い(ない)か?

785 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:20:41.79 ]
>投棄実行については投棄実行を考慮した上での静的予測方法があるでしょ

理解できる日本語で書いてくれないかな。

分岐予測というのは、投機的に(結果が判明する前に)実行する前提でのもの。
(無条件分岐や間接分岐もあるから、厳密には正しくないけど)
予想して(投機的に)実行するのでなければ、単に結果が判明するのを待って、それから実行すればよい。

つまり、投機実行するからこそ分岐予測が必要なのであって
投機実行しないのであれば、分岐予測など元々必要ない。
そのことをちゃんと理解していれば、
そもそも「投機実行を考慮しない分岐予測」などというものが存在しないから
>投棄実行を考慮した上での静的予測方法
が意味不明に感じられる気がするんだけどな。

>>783
わかってるよ、そんなこと。

786 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:22:22.48 ]
>>780 ifが優先されると思ってたのは>>767 とお前ぐらいだよ

787 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:25:19.71 ]
>>785
ごめん。もう今更何を言おうが>>780のせいで信用ないわ。

788 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:34:54.17 ]
>>782
ああ投棄実行ね投機の変換ミスそのままにしてたわ

789 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:48:33.55 ]
投棄実行については誤解してたわ。
2つの分岐を両方実行して実際実行対象にならなかった方の結果を破棄するものだと思ってた。

790 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 22:50:38.87 ]
>大概returnやthrowが行われるからifをすっ飛ばせば速いのは解る。

もう一度考えてみたけど、この意味が全然理解できない。
ぱっと見で、何故returnや、
増してthrowなどという言葉が出るのかわからない。
(GP等の例外の割り込みは全く別物)

で、次の行の
>反復も反復する事を優先した方が早いのは解る。
の意味は、「ループであることが推測されるから分岐すると予測する」だよね?
それとの対比で、「ifをすっとばせば」の意味が
「ifの内部は実行されないと予測」と捉えれば
「ifの部分での分岐は分岐すると予測すれば
if内部のreturnやthrowに制御が来ないので別の分岐の予測を避けられる」という意味にもとれる。
それならようやく意味が通じるような気がして、そういう意味だと思ったんだけど。
つまり、ifの部分(=前方分岐)を「分岐すると予測する」という意味だと。

でもそれ(前方へ分岐すると予測する)は実際のプロセッサの動作とは違うわけで
ならばどういう意味なのか、さっぱりわからなくなってしまってね。

791 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 23:00:43.72 ]
お前の文章が解らんわ



792 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 23:01:04.27 ]
一応。

突然returnやthrowが出てくるのが
if (xx) return
という意味じゃないか、というのも勝手に俺が頭の中で補って想像しただけで
実際には何の説明も無く(ifの多くがreturnやthrowというのにも同意しにくい)
唐突な「rerturnやthrow」「すっ飛ばす」を必死に理解しようとしたのがそもそもの間違いかもね。

793 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 23:01:51.31 ]
実行時の分岐予測って、どうなってるのかわかってないと、グダグダでしょ

794 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 23:04:39.09 ]
>>792
>>779で補足だしてるだろしつこいわ

795 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 23:09:08.21 ]
>>790 >>792 ウゼェ・・・


796 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 23:18:44.32 ]
>>794
>>779だとしたら>>780だっての。
「前方分岐は分岐しないと予測する」のが実際のプロセッサの動作なわけ。
>>779の「throwなんか滅多に起こらないから実行しない(と予測する)」は
「前方分岐は分岐すると予測する」ことになるから実際の動作と矛盾するという話。
それを、「わかってないくせに」の根拠の一つにしたんだよ。

実際、「分岐予測とはどういうものか」も「なぜ分岐予測するのか」もわかってなかったわけでしょ(>>789)。

797 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 01:09:12.01 ]
口汚い言葉で罵倒せずには居られない奴って下品・・・。
団子さんの紳士っぷりを少しは見習ったらどうだろうか。

798 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 01:16:07.87 ]
もう>>780はいいから団子さんこないかな

799 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 01:24:14.75 ]
え?指摘するの780だけ?
露骨だなぁ。恥ずかしくないんだろうか。

800 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 02:30:29.23 ]
お前がなwww

801 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 03:19:03.04 ]
頭が悪すぎて理解できなかったらしいから仕方ないな。



802 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 14:12:21.08 ]
>>796
投機実行という言葉については誤解してました。
分岐予測については、分岐ミスでパイプラインに読み込んだ
命令を破棄が発生するという認識です。

そもそも、それが気にならないのであれば分岐予測なんて
気にする必要はないでしょう。

803 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:12:43.94 ]
インテルの最適化マニュアルだと
>インテルPentiumM プロセッサー、インテルCoreSolo プロセッサー、インテルCoreDuoプロセッサーは、
>ジャンプの向きに従った条件分岐を静的には予測しない。これらのプロセッサーでは、
>すべての条件分岐は、最初に発生したときでも動的に予測される。
と書いてあって、wikiで調べたらPenM以降は広域分岐予測を取り入れた関係で静的予測はしなくなったみたいだね
ttp://ja.wikipedia.org/wiki/%E5%88%86%E5%B2%90%E4%BA%88%E6%B8%AC

>>768
>PM,Core2はランダム
というよりも、「前に実行した別の分岐命令の結果も影響する」とした方が適切みたいだ

分岐予測に関して
ttp://news.mynavi.jp/column/architecture/index.html
の第167回からの解説が参考になるよ


804 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 18:09:59.76 ]
>>803
なるほど。いい話が聞けました。ありがとうございます。

805 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 00:06:00.96 ]
>>803
>と書いてあって、wikiで調べたらPenM以降は広域分岐予測を取り入れた関係で静的予測はしなくなったみたいだね
P4もグローバル履歴を使ってるよ

おそらくだけど ある分岐命令を最初に実行したかどうかはBTBのエントリが割り当てられているかで判断するので
分岐先予測より分岐予測のヒット率が十分に高い場合は動的分岐予測が当たる条件で誤って静的予測してしまう確率が高いから
1回目の分岐予測を諦めても静的予測をやめたほうがヒット率が上がるということなんじゃないだろうか

806 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 00:11:22.64 ]
×分岐先予測より分岐予測のヒット率が十分に高い場合
○BTBのヒット率より分岐予測のヒット率が高い場合






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<188KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef