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

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



From: Hiroki ISHIHARA <ishihara@giga.it.okayama-u.ac.jp>
Message-Id: <20030713.204718.74726239.ishihara@giga.it.okayama-u.ac.jp>

> > > athlonXPって当時命令数が9個らしいですよね。それで常にCPUがフル活動している
> > > わけではないと思うのですが、

> > 「当時命令数」じゃなくて「同時命令数」ですよね? おそらく、パイプライン
> > の段数のことを言ってるのだと思いますが、これは、1命令を実行するのに
> > CPU 内部で複数のステージに別れているのを利用して、ある命令が次のステー
> > ジに移った後、そのステージを遊ばせておかないで次の命令の処理を始める、
> > という仕掛けです。
> 
> 「当時命令数」は「同時命令発行数」だと思います.
> パイプラインのことではなく,スーパースカラ(スーパースケーラ)のことでしょう.
> Athlon XP は 1クロックで最大9個の命令を同時に(並列に)発行できます.

あ、そっちの方でしたか。
# 最近 AMD の方の動向には疎くて…

> ただし,同時に発行できるのは同じスレッド内で依存関係のない命令だけです.
> ですから,make -j 2 とかで速くはなりません.

これは、パイプラインが横にも並んでるような形態、だったと思いますが、あ
くまで外からは 1CPU にしか見えないので、別スレッドの命令は放り込みよう
がないですね。

ところで、AthlonXP のように、パイプラインを横に並べるのと、P4 のように、
パイプラインを縦に長くするのとでは、どっちが効くんでしょうね。おそらく
一長一短だとは思うのですが、分岐予測まわりも絡めて考察すると、かなり奥
が深そう。

> ちなみに,Soさんの求めている,CPU の空きを埋めてフル活動させるために,
> 1個のCPUで複数のスレッドを同時に実行するしくみが Pentium4 の Hyper-Threading です.

最近、Xeon2.0G のサーバのカーネルを SMP なカーネルに差し換えたら、HT
が有効になっていました。残念ながら思ったより速くないのと、高負荷時にカー
ネルパニックが起きるのとで、BIOS の方で HT 無効にしてしまいました。

HT の場合、中で複数持っている演算回路を有効活用する仕掛けであって、一
部のユニットが複数の仮想CPUで共用されている関係上、1CPU よりはちょっと
マシ、といったレベルのようです。多分個人用途レベルでは問題ないのでしょ
うけど、サーバとかでいじめまくるとまだちょっと怪しい感じ。
_______________________________
田原 俊一   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:19670] Re: make -jについて, OHNO Tetsuji
References
[plamo:19643] make -jについて, SO
[plamo:19647] Re: make -jについて, Shun-ichi TAHARA (田原 俊一)
[plamo:19665] Re: make-jについて, Hiroki ISHIHARA

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