[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:19672] Re: make-jについて



From: OHNO Tetsuji <azure-ml@fan.gr.jp>
Message-Id: <20030714024506.GA2809@wiz7.prosaic1.a08.aist.go.jp>

>   で、このCUPをSMPカーネルで使うとシングル用カーネルに比べてバイナリの
> 実行速度が速くなります (といっても自作のプログラムの場合ですので、どんな
> バイナリでも有効なのかってのはよくわかりませんが)。

試したことはないのですが、実はシングルCPUなマシンでもSMPカーネルの方が
速かったりして…

> > パイプラインを縦に長くするのとでは、どっちが効くんでしょうね。おそらく
> > 一長一短だとは思うのですが、分岐予測まわりも絡めて考察すると、かなり奥
> > が深そう。
> 
>   個人的には短いパイプラインを横にしたほうが速いんじゃないかなあ、って思
> っています。ベンチマークのような単調な命令をこなすのならばやっぱり深い
> パイプラインのほうが有効なんでしょうけど。

結局、そのプロセッサのパイプラインスケジューリングの特性とコードのそれ
が一致するか、が一番の鍵、ってことになりそうですね。

> # 将来的には大量のパイプラインを並列にして、分岐予測をするのではな
> # く、全て (は無理にしても多く) の場合を計算し、正解だけを使う、なんて
> # アプローチがでてきたりして。
> # それとももうやってるんでしたっけ?

ワンチップで超並列、みたいなノリになってくるのかも。1つのスレッドの分
岐予測を非決定的にやる、という雰囲気で、まさに力技。

それでも、枝の無いところでは、並列パイプラインをスーパスカラ的に使えば
もっと速くなるので、分岐予測モードでは命令同時投入数が減って遅くなった
り、そこでやはりある程度の分岐予測で枝狩りをして、外れたらペナルティが
大きい世界に戻ってきたり、と、CPU のコントローラ屋さんの頭のひねりどこ
ろが増えてきそうな気がしますね。

なんとなくですが、非決定分岐予測エンジン(ようは超並列パイプラインでの
全枝同時実行)の裏で分岐予測も行なって、その的中率を覚えておいて、枝数
と的中率をはかりにかけて、そのスレッドでの今後の枝狩りのパラメータを動
的に変更する、みたいなアーキテクチャが出てきそうな気がしません?

# ていうか、すでにそんなものスーパスカラでの常識、だったりして…

>   性能向上のほうは、やはりその機械でも御利益ないようです。

ううむ、このへんは OS 依存(使用命令セットの隔たり)とかがあるのでしょう
かねぇ?

# カーネルがダメ、という可能性も若干。
_______________________________
田原 俊一   jado@flowernet.gr.jp, shunichi_tahara@zenrin.co.jp
                                  http://flowernet.gr.jp/jado/
FingerPrint:  16 9E 70 3B 05 86 5D 08  B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

Follow-Ups
[plamo:19677] Re: make -jについて, OHNO Tetsuji
[plamo:19682] Re: make -jについて, Kenji Yoshida
References
[plamo:19665] Re: make-jについて, Hiroki ISHIHARA
[plamo:19668] Re: make-jについて, Shun-ichi TAHARA (田原 俊一)
[plamo:19670] Re: make -jについて, OHNO Tetsuji

[検索ページ] [メール一覧]
Plamo ML 公開システム