
AMDプロセッサのコア数表記をめぐる訴訟、BulldozerコアCPU購入者が対象に 27
ストーリー by hylom
まだ続いていたのか 部門より
まだ続いていたのか 部門より
headless曰く、
米カリフォルニア北部地区連邦地裁は17日、AMDプロセッサーのコア数表記をめぐって提起されていたクラスアクション訴訟(過去記事)について、原告側が求めていたクラスの定義を認定した(The Register、裁判所文書PDF)。
この訴訟はBulldozerモジュールを使用するAMDのFXシリーズ8コアプロセッサーに関するものだ。AMDはFXシリーズの8コアプロセッサーを「業界初のネイティブ8コアデスクトッププロセッサー」「Bulldozerアーキテクチャーによる比類なきマルチタスキングと純粋なコアのパフォーマンス」などと宣伝していたという。
しかし、Bulldozerモジュールは2つのコアが1組になっており、L2キャッシュやFPUを共有していることから、原告は完全な8コアとして動作せず、実質4コアだと主張。このような宣伝はカリフォルニア州法に違反するとして、損害賠償などを求めて2015年にAMDを訴えていた。
AMD側は原告の請求内容がクラス要件の一部を満たさないと主張していたが、連邦地裁のHaywood Gilliam Jr.判事はクラスの要件をすべて満たすと認定した。今回の訴訟でクラスメンバーとなるのは、AMDのWebサイトを閲覧した後でFX-8120/FX-8150/FX-8320/FX-8350/FX-8370/FX-9370/FX-9590を購入したすべての個人のうち、購入当時カリフォルニア州に在住していた人となる。
実質4コア (スコア:0)
Hyper-Threading みたいなもんか
Re:実質4コア (スコア:3, 参考になる)
結果が似てますが、設計の流れが逆なんですよね。
Intel HT は、「メモリアクセスとかでパイプラインがストールすると実行効率が落ちる」→「じゃあ、その間は別のスレッドを実行することにすればいいんじゃね」って方向性。
(「レジスタは2スレッド分必要」ってのはありますが、今時レジスタリネーミングにより内部的にはアーキテクチャ上のものより多くのレジスタを実装してるので、ハードウェア的な必要資源は増やさなくても実現できる)
あくまで1コアとしてのハードウェア資源は増やさないまま、「パイプラインがより埋まるようにする」ことで高速化する、というアプローチ。
一方、Bulldozerのは
各コアのモジュールは利用率が100%もないから、コア間でモジュールを共有すればあんまり性能を落とさずに、大幅にハードウェアを減らせるんじゃね
ってアプローチ。
大ざっぱには、整数演算メインに見れば
「各コアのシングルスレッド性能は2/3だけど、コア数2倍でトータル性能1.33倍」
ってもので、あとはシングルスレッド性能の低さを動作クロックアップで対応する想定。
そういう目論見の設計だったのが、
・あんまり高クロック化できなかった
・多数のコアを酷使するマルチスレッドプログラムって、大抵は浮動小数点/SIMDをがっつり使うので、効率が悪かった
ていうあたりが敗因ですかね。
マルチスレッドがっつりなベンチマークって、たいてい動画エンコードとかだし…
私は今もBulldozerなマシンをメインで使ってますが、
「(ほとんどがシングルスレッドな)アプリをたくさん立ち上げっぱなし」ていうマルチタスクな使い方だと、
ちゃんと8コアの恩恵を受けているって感じですね。
(Windows7の頃は、タスクマネージャのCPUは8つ分表示されてて楽しかったのですが、
Windows10に上げたら、グラフが一個だけになってちょっと寂しい…)
Re: (スコア:0)
>(Windows7の頃は、タスクマネージャのCPUは8つ分表示されてて楽しかったのですが、
>Windows10に上げたら、グラフが一個だけになってちょっと寂しい…)
実は変更できることを最近知ったのですが、グラフ上のコンテキストメニューから変更できます。
Re: (スコア:0)
参考になりました
Re: (スコア:0)
intelはパイプラインの空きステージを別スレッドで有効活用する。
AMDはコアをシンプルにする代りに2スレッド同時実行できるようにパイプラインを2セット持たせた。
で、もともと命令デコーダ1個にパイプラインが2セットぶら下がっているものをマーケティングのため2コアと数えてしまった。
こんなのにいちゃもんつけるのはヤクザみたいな奴しかいないだろうと思うが、AMDも身から出た錆。
Re: (スコア:0)
単に「パイプラインが2セット」とだけいうと、1コアのスーパースカラっぽく感じてしまいますが、
Bulldozerは、それぞれのパイプが整数演算ユニット2個とロードストアユニットを個別に持っています。
(だから、フェッチユニットが共有だから、その元であるL1命令キャッシュは共有だけど、
ロードストアは個別だから、その先であるL1データキャッシュは個別。)
命令L1・フェッチ・デコード・浮動小数点演算: 共有
パイプライン・整数演算・ロードストア・データL1: 個別
これを1コアと数えるのか2コアと数えるのかは、もはや「コアとは何か」という哲学的問題になりそうです。
Re: (スコア:0)
> もはや「コアとは何か」という哲学的問題になりそうです。
コアな話になってきましたね...
Re: (スコア:0)
人間が食って咀嚼する口に相当するフェッチデコード機能の数で数えるべきだと思うな。
Re: (スコア:0)
話をまとめすぎて、結果意味のないコメントになっている良い例ですね
Re:実質4コア (スコア:1)
MSもそう判断してBulldozer用の最適化パッチ(KB2592546)をリリースしたけど、かえって速度低下を招いてしまい、あわててKB2645594とKB2646060で更新した。
ちなみに以上の話はWin7の時代のことで、Win8以降はOSのスケジューラーが最初からBulldozerのナンチャッテ8コアに対応している。
Re: (スコア:0)
実際どんぐらいナンチャッテだったんだろね…。
AMD冬の時代だったので興味薄かったな。HTよりだいぶマシだったかとは思うけど。
#Athlon64x2からずいぶん間開いてRyzen使ってる今。
Re:実質4コア (スコア:1)
命令を取ってくるフェッチユニット、命令デコーダ、浮動小数点演算ユニットとSIMDユニット、L2キャッシュが共有。
整数演算ユニットとL1キャッシュが独立したコアらしい
でも、ナンチャッテというのは可哀そうだと思う。
ほとんどの用途で重要なのは整数演算であって、浮動小数点演算とSIMDはあまり使わない。
特にサーバー用途では。
だからトランジスタは整数演算ユニットに使って、あまり使われないユニットは共有し、節約したトランジスタをコアの数を増やすことに使うことで性能向上を図るというコンセプト。
ただし、インテルに製造技術で一世代以上負けていて、一世代負けると半分のトランジスタしか使えないから、勝負にならなかった。
あとBulldozerはx86命令が複雑なため消費電力が多いデコーダを共有、さらに同時命令発行数を4に抑えることで発熱を減らし、代わりにクロックを上げることでカバーする目論見だったみたい。
この場合、2整数コアあっても、一度に最大4命令しか送れないので、2つのコアが両方、理想的に動いた場合、実行すべき命令で不足し、実行ユニットが暇になってしまう。
そのためインテルに比べて、ピーク性能は低くなる。
Bulldozerはシングルスレッド性能が大事なPCには向いておらず、肝心なコア数も製造技術で負けていて、マイクロアーキテクチャの有利さを生かせなかったので、悪い点だけが目立ったんだと思う。
Ryzenはユニット共有をしてないけど、インテルより比較的トランジスタ数を抑えることと(AVXのユニットをインテルほどぜいたくにもっていない)、インテルとファウンドリーの製造技術差が縮まったことで、シングルスレッド性能では劣っているけど、マルチスレッド性能では価格性能比で有利となっている。
そしてインテルの10nmとTSMCの7nmは互角?で、インテルの10nmはまだ予定通りにでるかは不明なため、今年はAMDのターンな年だと思う。
Re: (スコア:0)
と思うでしょ
でもブル公はAlpha 21264に非常に近い設計なんだ
共通のフロントエンド、2つの整数コア、共通のFPUとL2は21264の特徴だった
ブル公との違いは整数コア間にデータパスがあることくらい
このデータパス、けっこう重いので取っちゃってマルチスレッドにしたんじゃないかと想像している
Re: (スコア:0)
> あとBulldozerはx86命令が複雑なため消費電力が多いデコーダを共有、さらに同時命令発行数を4に抑えることで発熱を減らし、代わりにクロックを上げることでカバーする目論見だったみたい。
これはたぶん違う
x86のデコーダは命令の切れ目を見つけるために、way数に対して規模が組み合わせ的に増加する
4wayの共有デコーダと3wayのデコーダ2つでは後者のほうがスループットが高いが、K10並みが2つですむ
どうしても4wayデコーダを用意したかったと考えるべきで、それは共有FPUの性能が裏付ける
Re: (スコア:0)
4コアだと思ってfpuメインで使えばメモリ性能ともマッチしていて優秀
たぶん4コアとして売るつもりで設計してたんだろうね
Re:実質4コア (スコア:1)
デコード・L1・ALUが独立しているのでSMT技術とは違う。
共有L2は珍しい話でもない。
SIMDエンジン共有というのがマズかったな。
問題になったのは、リソースの競合が発生するのでスケジューラーに配慮が必要になるって話しじゃ無かったけど
Re: (スコア:0)
もう何を信じてSIMDの数を決めていいのかわからない(泣
Re: (スコア:0)
フェッチまで共有ってのもまずかったんじゃないか
# マイコンしか弄ってないんで今時のCPUの話を見ると「I/Oポートを動的に自動割当て」とか書かれてて驚く
aaa (スコア:0)
セガサターンを思い出す。
セガサターンは32bitCPUが二つ付いてるから実質64bitCPUとか宣伝してたよな。
Re: (スコア:0)
あれは64bitCPUではなく64bit級と言ってただけです。
まぁ誇大なことには変わらないですが。
Re: (スコア:0)
同じハードウェア量だったら 32bit の方が速いぞ。誇大ではなく、控えめな表現だ。
Re: (スコア:0)
サターンはMC68000も付いてるから80bitじゃないの?とか
それ言ったらスーパー32XCDの方が上じゃない?とか言われていたアレか。
# SH-2(32bit)×2+MC68000(16bit)×2+Z80(8bit)で104bit
Re: (スコア:0)
クラスはこの場合集合とかだからまぁ、クラスの定義がとかおかしいのは確かだな
米国のクラスアクション法(集団訴訟法)の要件を満たすとかが良かったね
だけど、君も日本語おかしいから変わんないので無理して書き込まなくっていいと思うよ
Re: (スコア:0)
とかとか目くそ鼻くそ
Re: (スコア:0)
小学校でもクラスって言うよね?
あ,まだ幼稚園なのかな?