GPU と CPU はどのように異なりますか?

CPU (中央処理装置) は、サーバーの中核となる計算単位であるハードウェアコンポーネントです。オペレーティングシステムとアプリケーションの実行に必要なあらゆる種類のコンピューティングタスクを処理します。グラフィックスプロセッシングユニット (GPU) は似たようなハードウェアコンポーネントですが、より専門的です。一般的な CPU と比較して、並列に実行される複雑な数学演算をより効率的に処理できます。GPU は当初、ゲームやアニメーションの領域でグラフィックレンダリングタスクを処理するために生み出されましたが、現在の用途はそれをはるかに超えています。

GPU と CPU の類似点

CPU とグラフィックスプロセッシングユニット (GPU) はどちらも、コンピュータを動作させるハードウェアユニットです。それらはコンピューティングデバイスの頭脳と考えることができます。どちらも、コア、メモリ、コントロールユニットなど、同様の内部コンポーネントを備えています。

Core

GPU と CPU の両方のアーキテクチャには、すべての計算と論理機能を実行するコアがあります。コアは、ビットと呼ばれるデジタル信号の形でメモリから命令を引き出します。命令をデコードし、命令サイクルと呼ばれる時間枠で論理ゲートを通過させます。CPU は当初シングルコアでしたが、今日ではマルチコア CPU と GPU が一般的です。

メモリ

CPU と GPU はどちらも毎秒何百万もの計算を実行し、内部メモリを使用して処理パフォーマンスを向上させます。キャッシュは、迅速なデータアクセスを容易にする内蔵メモリです。CPU では、L1L2、または L3 のラベルはキャッシュの配置を示します。L1 が最も速く、L3 が最も遅いです。メモリ管理ユニット (MMU) は、命令サイクルごとに CPU コア、キャッシュ、RAM 間のデータ移動を制御します。

制御ユニット

制御ユニットは、処理タスクを同期させ、処理ユニットが生成する電気パルスの周波数を決定します。CPU と GPU の周波数が高いほど、パフォーマンスが向上します。ただし、これらのコンポーネントの設計と設定は CPU と GPU で異なるため、この 2 つはさまざまな状況で役立ちます。

主な相違点: CPU とGPU

コンピュータグラフィックスとアニメーションの登場により、CPU が処理するようには設計されていなかったコンピューティング集約型のワークロードが初めて発生しました。例えば、ビデオゲームのアニメーションでは、アプリケーションがデータを処理して、それぞれ独自の色、光の強さ、動きを持つ何千ものピクセルを表示する必要がありました。当時 CPU での幾何学的計算はパフォーマンスの問題につながっていました。

ハードウェアメーカーは、一般的なマルチメディア指向のタスクをオフロードすることで CPU の負荷を軽減し、パフォーマンスを向上させることができることを認識し始めました。現在、グラフィックスプロセッシングユニット (GPU) のワークロードは、機械学習や人工知能などのコンピューティング集約型アプリケーションを CPU よりも効率的に処理します。

関数

CPU と GPU の主な違いは、その機能にあります。サーバーは CPU なしでは実行できません。CPU は、サーバー上のすべてのソフトウェアが正しく動作するために必要なすべてのタスクを処理します。一方、GPU は CPU による同時計算をサポートします。GPU は、タスクをより小さなコンポーネントに分割して並行して完了できるため、単純で反復的なタスクをはるかに高速に完了できます。

設計

GPU は、複数のコアまたは算術論理ユニット (ALU) による並列処理に優れています。GPU コアは CPU コアほど強力ではなく、メモリも少なくて済みます。CPU は異なる命令セットを素早く切り替えることができますが、GPU は簡単に、同じ命令を大量に取り、高速で処理します。そのため、GPU の機能は並列コンピューティングにおいて重要な役割を果たします。

違いの例

理解を深めるために、次の例えを考えてみましょう。CPU は大きなレストランの料理長のようなもので、何百個ものハンバーガーをひっくり返さなければなりません。これは料理長個人でできても、時間の使い方がベストとは言えません。料理長がこのシンプルながら時間のかかる作業を完了している間、すべてのキッチンの業務が停止したり遅くなったりする可能性があります。これを避けるため、料理長は複数のハンバーガーを並行してひっくり返す部下のアシスタントを起用することができます。GPU は、10 秒で 100 個のハンバーガーをひっくり返すことができる 10 本の手を持つ部下のアシスタントのようなものです。

CPU 経由で GPU を使用するタイミング

CPU とグラフィックスプロセッシングユニット (GPU) のどちらを選択するかは、二者択一ではないことに注意してください。クラウド内のすべてのサーバーまたはサーバーインスタンスを実行するには CPU が必要です。ただし、一部のサーバーには、追加のコプロセッサとして GPU も含まれています。特定のワークロードは、特定の機能をより効率的に実行する GPU を搭載したサーバー上で実行する方が適しています。例えば、GPU は浮動小数点数の計算、グラフィック処理、またはデータパターンマッチングに最適です。

ここでは、CPU よりも GPU を使用すると便利なアプリケーションをいくつか紹介します。

深層学習

深層学習は、人間の脳の働きを模した方法でデータを処理するようにコンピュータに教える人工知能 (AI) の一手法です。例えば、深層学習アルゴリズムは、画像、テキスト、音声、その他のデータにおける複雑なパターン認識によって、正確なインサイトや予測を生成します。GPU ベースのサーバーは、機械学習、ニューラルネットワーク、深層学習のタスクに高いパフォーマンスを発揮します。

深層学習について読む »

機械学習について読む »

ニューラルネットワークについて読む »

ハイパフォーマンスコンピューティング

ハイパフォーマンスコンピューティングという用語は、非常に高いコンピューティング能力を必要とするタスクを指します。次に例を示します。

  • 地球科学シミュレーションと地震に係る処理を迅速かつ大規模に実行する必要がある
  • 商品ポートフォリオのリスク、ヘッジの機会などを特定するために、財務シミュレーションが必要である
  • 医学、ゲノミクス、創薬における予測的、リアルタイム、または遡及的なデータサイエンスアプリケーションを構築する必要がある

GPU ベースのコンピュータシステムは、このようなハイパフォーマンスコンピューティングタスクにより適しています。

ハイパフォーマンスコンピューティングについて読む »

自動走行車

先進運転支援システム (ADAS) や自動走行車 (AV) システムを開発してデプロイするには、拡張性の高いコンピューティング、ストレージ、ネットワーク、分析技術が必要です。例えば、データ収集、ラベル付けと注釈、マップ開発、アルゴリズム開発、シミュレーション、検証のための機能が必要です。このような複雑なワークロードを効率的に機能させるには、GPU ベースのコンピュータシステムのサポートが必要です。

相違点のまとめ: CPU とGPU

 

CPU

グラフィックスプロセッシングユニット (GPU)

関数

サーバーの主要な処理機能を扱う汎用コンポーネント

並列コンピューティングに優れた専用コンポーネント

処理

シリアル命令処理用の設計

パラレル命令処理用の設計

設計

より少ない、より強力なコア

CPU よりもコアは多いが、CPU コアよりは処理能力が低い

こんな方に最適

汎用コンピューティングアプリケーション

ハイパフォーマンスコンピューティングアプリケーション

AWS はお客様の CPU と GPU サーバーの要件をどのようにサポートできますか?

Amazon Web Services (AWS) は、最も広範で奥深いコンピューティングプラットフォームである Amazon Elastic Compute Cloud (Amazon EC2) を提供しています。500 を超えるインスタンスがあり、ワークロードのニーズに最適な最新のプロセッサ、ストレージ、ネットワーク、オペレーティングシステム、購入モデルを選択できます。

Amazon EC2 が提供する機能のハイライトは次のとおりです。

  • 汎用インスタンスは、コンピューティング、メモリ、ネットワークのリソースをバランスよく提供します。2~128 個の仮想 CPU の設定を選択できます。
  • 高速コンピューティングインスタンスは、追加のグラフィックスプロセッシングユニット (GPU) コアを提供してコンピューティング能力を高めます。各インスタンスには最大 8 つの GPU が搭載されます。

今すぐ無料アカウントを作成して、AWS でのサーバーインスタンスの使用を開始しましょう。

AWS での次のステップ