プロが教える店舗&オフィスのセキュリティ対策術

1秒間の浮動小数点演算回数をFLOPSという単位で表し、スーパーコンピュータの性能指標となっていますが、我々に身近なデバイスのFLOPS値としては以下のようなものがありますね。

・Core 2 Duo 15MFLOPS
・Core 2 Quad 30MFlops
・PowerPC G5 8GFlops
・PS3 Cell  218GFlops
・GeForce8800GT 336GFlops

こうして見てみるとCore2などの汎用プロセッサとその他の演算ユニットとの差が圧倒的に思えます。PowerPCはRISCである点が特長でしょうか‥‥。CellもPowerPC系とのことですし、GeForceはビデオカードなので浮動小数点演算は得意なのでしょうか。

さて、ここでお聞きしたいのは
・GFlopsクラス以上のプロセッサはCore2などと比べて構造的にどう違うのか。Core2もFPUを積んでおり、浮動小数点演算をハードウェアで行っているはずなのに?
・これだけFlops値に大きな差があって、計算機全体としての性能差に影響しないのか、具体的にいえば「GeForceのGPUをCPUにしちゃったらいいんじゃないの?」という気がしますがなぜそれは行われないんでしょうか。

分かりにくい質問かもしれませんが、よろしくお願いします。

A 回答 (9件)

ん? Core2 系って, そんなに flops 小さかったか? 未確認だけど Core2 では SIMD 系をスループット 1クロックでできそうな気がする. もしそうなら, Core2 Duo でも 10Gflops とかいけるんじゃないかな.


あと, PowerPC G5 と Cell の違いですが, 「Cell には 8個の SPE が載っている」ことに注意しなければなりません. この SPE がたぶん 8ops/clock いけます. PS3 はクロックが 3.2GHz ですから, PS3 の SPE は
7×8×3.2Gflops = 179.2 Gflops
となります (7 をかけているのは, PS3 の Cell では SPE を 1個殺しているから).
つまり, Cell や GPU は「単純な計算しかできないものをいっぱい載せている」ので flops が大きくなります. 逆に普通の CPU は「いろんな計算ができるものを少数載せている」ので flops の値はあまり大きくなりません. この PowerPC G5 の数値も, おそらく AltiVec を完全に使っての数値だと思います.

この回答への補足

回答ありがとうございます。

> Core2 Duo でも 10Gflops

SandraだとCore2 Quadd46GFLOPSとなってますね。
ソースによって違ってます。x86命令だけなのかSSEの活用の有無なのか、最適化されるかどうかにもよるのかもしれませんね。

「AltiVec」はWikipediaの項目を読んでみました。ベクトル計算ユニットのようですね。小さなFPUを並列に揃えて一度の浮動小数点演算命令で大量のループ処理をするものでしょうか。PowerPCのほかWii、XBOX360、PS3といったゲーム機にも載せられているとありました。

要するにGPUやベクトル演算器は単純な処理を並列で一気にこなすのに特化されていて、分岐処理を伴う整数演算のような汎用性の高い業務には使えないというように理解しました。

補足日時:2008/10/17 13:36
    • good
    • 2

>PowerPC系の場合はどちらも汎用プロセッサとなりますが、Flops値には歴然たる差がありますね?これはどういった構造上の違いから来るのでしょうか?


これはすでに素晴らしい回答がありますので私はたとえ話程度に。
『「水泳選手」と「陸上競技の選手」、どちらもスポーツマンですが陸上競技の選手は泳ぎで水泳選手に負けてしまいます。これはどういった違いによるものでしょうか?』 

>「整数演算能力」「小数点演算能力」以外にプロセッサの優劣を分かつ点があるということでしょうか?
上記は「同じ計算(もしくは同じ出力結果になる計算)」を行った際の値であり単なる「指標」でしかありません。
しかも、この指標も「演算する桁数が一緒」といった明確な基準はありません。

はっきり言えばそれすら意味がありません。
いくらCPUの演算性能が良くても、それを使用するためのソフト(アプリケーション)が最適化されていなければ全く意味はありませんので。
それと「適材適所」という言葉は知っていると思います。
「絵を早くきれいに書ける人」が必ずしも音楽や話が上手であるとは限らないということです。

参考URL:http://www.ne.jp/asahi/comp/tarusan/
    • good
    • 1
この回答へのお礼

皆さんたくさんの回答ありがとうございました。
リンク先の記事なども(じっくりじゃないけど)読ませてもらい、ある程度理解できました。
GPUは特定の用途に特化され、並列処理に特化したアルゴリズムでないとパフォーマンスが出ないということですね。確かにCPUの代替には絶対なりそうもないことが分かりました。イメージ的には単純作業を人海戦術でこなすタイプでしょうか。

G5のFLOPS値はクラスタだったのですね。CoreのFLOPS値はIT関連サイトだと20~30GFLOPSになっていました。

FLOPSはベクトル計算ユニットだとかなりのスコアが出ることも分かりました。ただ、実際のところ3DCGリアルタイム描画に特化ですね。専用プロセッサなんだから考えてみればスコアが高いのも当たり前ですね。

お礼日時:2008/10/18 00:36

PEN4の時代でも1GFLOPSは出ていたけど


何か資料がおかしいですよ

そもそもFLOPSで比較していたのは20年ほど前のクレイが活躍していた頃の話

最近のCPU同士の比較の場合は、SpecCPUというものをわりと使います
http://www.specbench.org/cpu2006/results/
    • good
    • 0

PowerPC G5の値はクラスタですね


http://slashdot.jp/apple/04/08/25/2150251.shtml? …

>Core2もFPUを積んでおり、浮動小数点演算をハードウェアで行っているはずなのに?
Core2が積んでいるのはせいぜい数個です
対してビデオカードは数百のレベルで積んでいます

PC用のCPUでは"新しいCPUでは過去のソフトはより早く動くようにならなければいけない"というしがらみが存在するため足を引っ張るばかりのシングルスレッド、整数演算の性能も上げなければならず、そのために性能向上率、電力効率で言えば非効率的なOut-of-Orderなどもやめることが出来ません(Intel Atomはこのしがらみを有る程度捨てました)
Cellはそんな過去の遺産はありませんから

GPUがCPUにはなれないのは今のソフトがGPUにとって不得意な処理ばかりというのもあります
GPUをCPUにしたところで今までのソフトが今までより遅いという事になるだけです
http://pc.watch.impress.co.jp/docs/2007/0326/kai …
    • good
    • 0

>「整数演算能力」「小数点演算能力」以外にプロセッサの


> 優劣を分かつ点があるということでしょうか?

横から口を差し挟みますが「シェア」でしょう。
開発費用が違いますので、新しいCPUにどんどん
差が出て、シェアはますます開きます。
それがIntel Macの登場になったと思います。

それ以外は安定性。発熱が少ないか。大きさ。
命令セット。メモリコントローラの有無。

今のAMDの社長は新しいプロセッサはユーザが
「おっ」と思うような新機軸は常に必要と言って
います。差別化にキリがないのでは?
    • good
    • 0

GPUではアプリケーションが動作しません。



一般のCPUは実効命令にストーリー性があります。
逐次処理といいます。これをやったら次はこれ、
というものです。

逐次処理でないものは、同時に沢山の演算装置で
ドンと処理が出来ますから、トータルの演算数が
増えますが、演算装置1つ1つはそれほどでも
ありませんから、GPUといえども逐次処理をすると
性能が出ません。

スーパーコンピュータの科学計算プログラムは
計算式をプログラムすることは当然ですが、
逐次処理で無い計算方法、並列演算アルゴリズム
の開発が第一になります。そうしないとスーパー
コンピュータの性能が出ないのです。

そういう意味でGPUは並列演算のみなので性能が
出ているわけですが、他の方も書かれているよう
に、これしか出来ない、から出る性能です。
    • good
    • 0

GPUをCPUの補助にしようとする動きはあります。



GPUは並列演算が得意です。
そのため画像処理や動画エンコード等のデータ処理に独立性のある演算に向いています。
実際にTMPGEnc 4.0 XPressというエンコーダーのフィルター処理にGPUを用いるテストがされています。
http://pc.watch.impress.co.jp/docs/2008/0826/peg …
http://pc.watch.impress.co.jp/docs/2008/0723/taw …

ただし問題はありまして、例えばGPUとのデータを送受信する時間がかかりすぎると
いくらGPUの処理速度が速くても恩恵が少ないです。

あとGPUはCPUを駆逐するようなものでなく補完関係です。
CPUにもGPUにも得手不得手があり、並列でない通常の処理はCPUが得意です。
    • good
    • 0

>「GeForceのGPUをCPUにしちゃったらいいんじゃないの?」という気がしますがなぜそれは行われないんでしょうか



GPUは「3D⇒2D変換」など、特定の計算のみに特化したプロセッサなので「普通のCPUが行っている、一般的な整数演算などが苦手」のです。

また、CPUはFlops値が低くなりがちですが、これは、CPU部とFPU部とのインタフェースがボトルネックになっている為で、CPUをFlops値で評価しても、あまり意味はありません。

これは、100m走の金メダリストとフルマラソンの金メダリストを2人同時に走らせて「どっちが優れてる?」と比べるのと一緒で、比べても何の意味もありません。

餅は餅屋、馬は馬方、です。餅屋に馬を用意させても、馬方に餅を用意させても、何の意味もありません。
    • good
    • 0

単純に書くと「やることの違い」があるからです。


GPUは「画面表示」という機能に特化されています。対してCPUは処理すべてに対して柔軟に対応する必要があります。
単純な計算性能の比較は意味がありません。
それと「GPGPU」という言葉も調べてみてください。ある程度質問事項は解決するはずです。

この回答への補足

早速のご回答ありがとうございます。

> 単純に書くと「やることの違い」があるからです
PowerPC系の場合はどちらも汎用プロセッサとなりますが、Flops値には歴然たる差がありますね?これはどういった構造上の違いから来るのでしょうか?また、IntelMACなど汎用CPUとしては86系の方が優れているととらえる向きもあるようですが、「整数演算能力」「小数点演算能力」以外にプロセッサの優劣を分かつ点があるということでしょうか?

補足日時:2008/10/17 10:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!