Mike Poundがコンピューターの計算能力をプロセッサーではなくグラフィックカードで測定するのはなぜですか?


17

最近私はマイクパウンドが4枚のグラフィックカード(正確にはTitan Xのカード)を持っている彼の会社のスーパーコンピューターを自慢しているパスワードに関するすばらしいComputerphileビデオを見まし

数値シミュレーション愛好家として、シミュレーション作業専用のデスクトップを構築することを夢見ています。Mike Poundがコンピューターの計算能力をプロセッサーではなくグラフィックカードで測定するのはなぜですか?コンピューターを構築している場合、どのアイテムをもっと気にする必要がありますか?


11
これは必ずしもゴリラ対サメの質問だとは思わない...単純な質問がある。「なぜマイクポンドはコンピューターの計算能力をプロセッサーではなくグラフィックカードで測定するのか?」それは答えることができ、その答えは将来の読者にとって建設的な価値があります。
Maybe_Factor

6
@gnat:近くさえありません。もちろん、現在の形での質問は、実際にはソフトウェアエンジニアリングに関するものではありません。しかし、システムのエンジニアリングに関する質問として解釈できると思います。ここで、system =「ハードウェアとソフトウェアの組み合わせ」です。
ドク・ブラウン

10
4枚のグラフィックカードを搭載したコンピューターは、スーパーコンピューターに相当しません(また、10個のRaspberry Piのクラスターも同様です)。
マッティバークネン

10
それ、スーパーコンピューターではなく、非常に高価なPCセットアップです
...-バクリウ

3
コンテキストがパスワードクラッキングであるため、「マイクパウンドがコンピューターの計算能力をグラフィックカードで測定する理由」に対する単純な答えではありませんか?問題のあるスペースが他の何かである場合、気にする必要があるのはまったく別の何かかもしれません。
-JimmyJames

回答:


32

Mike Poundは明らかに、グラフィックカードの計算能力をCPUの計算能力よりも高く評価しています。

どうして? グラフィックカードは基本的に、すべてが並列に実行される単純化された多数のプロセッサで構成されています。一部のシミュレーション作業では、多くの計算をグラフィックカードで利用可能な数千のコアで簡単に並列処理および並列処理できるため、合計処理時間が短縮されます。

どの項目をもっと気にする必要がありますか? 本当に気にするワークロードと、そのワークロードをグラフィックカードで使用するためにどのように並列化できるかによって異なります。ワークロードが単純な計算の恥ずかしいほどの並列セットであり、利用可能なグラフィックスカードを利用するようにソフトウェアが記述されている場合、グラフィックスカードの数が多いほど、CPU(ドル)を上回るパフォーマンスの影響が大きくなります。


5
いくつかの数字を追加します。メインコンピューターが、ハイパースレッディングを備えた64コア、128コアのAMD Epycサーバーだとします。また、グラフィックスカードの「コア」の速度がわずか10%であるとしましょう。1つのTitanXには、まだ3072個のcudaコアがあり、セットアップには約12000個あります。アイデアを得る?グラフィックカードで問題を実行できる場合、「高速」ではありません。馬車の速度をフォーミュラ1の車と比較するようなものです。
TomTom

3
「単純な計算の恥ずかしいほど並列なセット」に対して+1、非常によく書かれています。短く、要点まで。
マイケルヴィクトルスターバーグ

11
@TomTom:実際に私が好む比較は、フォーミュラ1カー(CPU)と新幹線を比較することです。確かに、電車と車はほぼ同じ速度です。しかし、電車はフォーミュラ1の車よりも速く1000人をAからBに移動できます。
スリーブマン

2
@slebetmanのポイントは、CPUは通常、シングルコアパフォーマンスではるかに高速であることです(ほぼ同じ速度ではありません)。たぶん妥協して、超音速ジェット飛行機と蒸気機関車を比較することができます。
ダレンリンガー

2
車両に基づいて類推を選択する必要がある場合、CPUは戦闘機のようなものだと思います(ポイントツーポイントの輸送にははるかに高速で、他の車両にはできないがそのスリーブには多くのトリックがありますが、 GPUは貨物船のようなものです(非常に多くの負荷を同時に運ぶことができますが、ターンアラウンドが非常に遅くなります)。
ライライアン

5

チェックアウトhttps://developer.nvidia.com/cuda-zoneを(とGoogle のCUDA NVIDIAをたくさんより多くの情報のため)。cudaアーキテクチャとハイエンドグラフィックスカードは、デスクトップスーパーコンピューターでかなり広く使用されています。通常、市販のホワイトボックスコンポーネントを使用して、1万ドル未満で数Tflopのボックスをまとめることができます。

そう...

数値シミュレーション愛好家として、シミュレーション作業専用のデスクトップを構築することを夢見ています

... cudaはあなたにとって町で一番遠く離れた最高のゲームです。たぶん/scicomp//または別のstackexchange Webサイトで、この種のことにより直接関係する質問をしてみてください

(ところで、私たちはここで大規模並列プログラミングについて話しているという考えに満足していると思いますので、アルゴリズム設計のためにそのパラダイムに慣れる必要があるかもしれません。)


そして、いつものようにOrdosに戻りました。
マイケルヴィクトルスターバーグ

2
@MichaelViktorStarberg Ordosの参照を理解していないのは私だけですか?
MarnixKlooster ReinstateMonica

あなたが怖い...:/
イスマエルミゲル

4
@MarnixKlooster:「Ordos」をGoogleで検索する必要がありました。中国の「ゴーストシティ」がスーパーコンピューターやテラフロップスとどう関係しているかはわかりません。
ロバートハーベイ

@MarnixKloosterあなたは確かにそうではありません。
-jpmc26

2

コンピューターを構築している場合、どのアイテムをもっと気にする必要がありますか?

実用的な観点からは、GPUと比較してアップグレードが比較的難しいことを考えると、おそらくマザーボードとCPUにかなりの注意を払う必要があります。購入後、4つのGPUのスペースがないか、すべてのCPUをビジー状態に保つのに十分な速度のプロセッサがないことがわかります。

また、GPUのパフォーマンスは単精度FLOPで最も頻繁に報告され、倍精度ではかなり低下することにも注意してください。シミュレーションで余分な精度が必要な場合は、公示されている速度よりかなり低くなります。

ソフトウェアエンジニアリングレースへ

ソフトウェアの観点からは、フォンノイマンのボトルネックとプログラミングモデルという2つの主要な懸念事項があります。CPUはメインメモリにかなり良好にアクセスし、GPUはオンボードで大量の高速メモリを使用します。GPUにデータを出し入れする時間が速度の勝利を完全に無効にすることは不明ではありません。一般に、CPUは大量のデータを適度に計算する場合に勝者となりますが、GPUはより少ない量で大量の計算を行う場合に優れています。これらすべてがプログラミングモデルにつながります。

高レベルでの問題は、古くから名誉あるMIMD / SIMDの議論です。複数命令/複数データシステムは、一般コンピューティングおよび商用コンピューティングの大きな勝者です。SMPを含むこのモデルでは、複数のプロセッサがそれぞれ独自の個別の命令ストリームを実行します。フランスのキッチンに相当するコンピューターで、少数の熟練した料理人に比較的複雑なタスクを完了するよう指示します。

一方、単一命令/複数データシステムは、マスターコントローラーからの指示に従ってデスクにチェーンされた店員でいっぱいの巨大な部屋により似ています。「誰もが3行目と5行目を追加します!」ILLIACおよび一部の「ミニスーパー」システムでは純粋な形で使用されていましたが、市場では失われていました。現在のGPUは密接な親coであり、より柔軟性がありますが、同じ一般的な哲学を共有しています。

簡単にまとめると:

  • どのような操作でも、CPUは高速になりますが、GPUは多くを同時に実行できます。違いは、64ビットの浮動小数点数で最も顕著です。
  • CPUコアは任意のメモリアドレスで動作でき、GPUのデータはより小さな領域にパッケージ化する必要があります。転送時間を相殺するのに十分な計算を行っている場合にのみ勝ちます。
  • 条件付きの重いコードは、通常、CPUでより快適になります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.