パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

AMDプロセッサのコア数表記をめぐる訴訟、BulldozerコアCPU購入者が対象に」記事へのコメント

  • by Anonymous Coward on 2019年01月28日 16時40分 (#3555845)

    Hyper-Threading みたいなもんか

    • Re:実質4コア (スコア:3, 参考になる)

      by taka2 (14791) on 2019年01月28日 18時39分 (#3555942) ホームページ 日記

      結果が似てますが、設計の流れが逆なんですよね。
      Intel HT は、「メモリアクセスとかでパイプラインがストールすると実行効率が落ちる」→「じゃあ、その間は別のスレッドを実行することにすればいいんじゃね」って方向性。
      (「レジスタは2スレッド分必要」ってのはありますが、今時レジスタリネーミングにより内部的にはアーキテクチャ上のものより多くのレジスタを実装してるので、ハードウェア的な必要資源は増やさなくても実現できる)

      あくまで1コアとしてのハードウェア資源は増やさないまま、「パイプラインがより埋まるようにする」ことで高速化する、というアプローチ。

      一方、Bulldozerのは
      各コアのモジュールは利用率が100%もないから、コア間でモジュールを共有すればあんまり性能を落とさずに、大幅にハードウェアを減らせるんじゃね
      ってアプローチ。

      大ざっぱには、整数演算メインに見れば
      「各コアのシングルスレッド性能は2/3だけど、コア数2倍でトータル性能1.33倍」
      ってもので、あとはシングルスレッド性能の低さを動作クロックアップで対応する想定。

      そういう目論見の設計だったのが、
      ・あんまり高クロック化できなかった
      ・多数のコアを酷使するマルチスレッドプログラムって、大抵は浮動小数点/SIMDをがっつり使うので、効率が悪かった
      ていうあたりが敗因ですかね。
      マルチスレッドがっつりなベンチマークって、たいてい動画エンコードとかだし…

      私は今もBulldozerなマシンをメインで使ってますが、
      「(ほとんどがシングルスレッドな)アプリをたくさん立ち上げっぱなし」ていうマルチタスクな使い方だと、
      ちゃんと8コアの恩恵を受けているって感じですね。
      (Windows7の頃は、タスクマネージャのCPUは8つ分表示されてて楽しかったのですが、
      Windows10に上げたら、グラフが一個だけになってちょっと寂しい…)

      親コメント
      • by Anonymous Coward

        >(Windows7の頃は、タスクマネージャのCPUは8つ分表示されてて楽しかったのですが、
        >Windows10に上げたら、グラフが一個だけになってちょっと寂しい…)
        実は変更できることを最近知ったのですが、グラフ上のコンテキストメニューから変更できます。

    • by Anonymous Coward on 2019年01月28日 17時29分 (#3555893)

      MSもそう判断してBulldozer用の最適化パッチ(KB2592546)をリリースしたけど、かえって速度低下を招いてしまい、あわててKB2645594とKB2646060で更新した。

      ちなみに以上の話はWin7の時代のことで、Win8以降はOSのスケジューラーが最初からBulldozerのナンチャッテ8コアに対応している。

      親コメント
      • by Anonymous Coward

        実際どんぐらいナンチャッテだったんだろね…。
        AMD冬の時代だったので興味薄かったな。HTよりだいぶマシだったかとは思うけど。

        #Athlon64x2からずいぶん間開いてRyzen使ってる今。

        • by Anonymous Coward on 2019年01月28日 21時50分 (#3556042)

          命令を取ってくるフェッチユニット、命令デコーダ、浮動小数点演算ユニットとSIMDユニット、L2キャッシュが共有。
          整数演算ユニットとL1キャッシュが独立したコアらしい
          でも、ナンチャッテというのは可哀そうだと思う。

          ほとんどの用途で重要なのは整数演算であって、浮動小数点演算とSIMDはあまり使わない。
          特にサーバー用途では。
          だからトランジスタは整数演算ユニットに使って、あまり使われないユニットは共有し、節約したトランジスタをコアの数を増やすことに使うことで性能向上を図るというコンセプト。
          ただし、インテルに製造技術で一世代以上負けていて、一世代負けると半分のトランジスタしか使えないから、勝負にならなかった。

          あとBulldozerはx86命令が複雑なため消費電力が多いデコーダを共有、さらに同時命令発行数を4に抑えることで発熱を減らし、代わりにクロックを上げることでカバーする目論見だったみたい。
          この場合、2整数コアあっても、一度に最大4命令しか送れないので、2つのコアが両方、理想的に動いた場合、実行すべき命令で不足し、実行ユニットが暇になってしまう。
          そのためインテルに比べて、ピーク性能は低くなる。

          Bulldozerはシングルスレッド性能が大事なPCには向いておらず、肝心なコア数も製造技術で負けていて、マイクロアーキテクチャの有利さを生かせなかったので、悪い点だけが目立ったんだと思う。

          Ryzenはユニット共有をしてないけど、インテルより比較的トランジスタ数を抑えることと(AVXのユニットをインテルほどぜいたくにもっていない)、インテルとファウンドリーの製造技術差が縮まったことで、シングルスレッド性能では劣っているけど、マルチスレッド性能では価格性能比で有利となっている。

          そしてインテルの10nmとTSMCの7nmは互角?で、インテルの10nmはまだ予定通りにでるかは不明なため、今年はAMDのターンな年だと思う。

          親コメント
          • by Anonymous Coward

            と思うでしょ
            でもブル公はAlpha 21264に非常に近い設計なんだ
            共通のフロントエンド、2つの整数コア、共通のFPUとL2は21264の特徴だった
            ブル公との違いは整数コア間にデータパスがあることくらい
            このデータパス、けっこう重いので取っちゃってマルチスレッドにしたんじゃないかと想像している

          • by Anonymous Coward

            > あとBulldozerはx86命令が複雑なため消費電力が多いデコーダを共有、さらに同時命令発行数を4に抑えることで発熱を減らし、代わりにクロックを上げることでカバーする目論見だったみたい。

            これはたぶん違う
            x86のデコーダは命令の切れ目を見つけるために、way数に対して規模が組み合わせ的に増加する
            4wayの共有デコーダと3wayのデコーダ2つでは後者のほうがスループットが高いが、K10並みが2つですむ
            どうしても4wayデコーダを用意したかったと考えるべきで、それは共有FPUの性能が裏付ける

        • by Anonymous Coward

          4コアだと思ってfpuメインで使えばメモリ性能ともマッチしていて優秀
          たぶん4コアとして売るつもりで設計してたんだろうね

    • by shesee (27226) on 2019年01月28日 17時56分 (#3555917) 日記

      デコード・L1・ALUが独立しているのでSMT技術とは違う。
      共有L2は珍しい話でもない。
      SIMDエンジン共有というのがマズかったな。

      問題になったのは、リソースの競合が発生するのでスケジューラーに配慮が必要になるって話しじゃ無かったけど

      親コメント
      • by Anonymous Coward

        もう何を信じてSIMDの数を決めていいのかわからない(泣

      • by Anonymous Coward

        フェッチまで共有ってのもまずかったんじゃないか

        # マイコンしか弄ってないんで今時のCPUの話を見ると「I/Oポートを動的に自動割当て」とか書かれてて驚く

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...