機械学習のためのCPUとGPUの違い

スクリーンでいっぱいの立方体の壁

執筆者

Josh Schneider

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

ディープラーニングにおけるCPUとGPUの違い

汎用の中央処理装置(CPU)と比較して、強力な画像処理装置(GPU)は、通常、機械学習(ML)、ディープラーニング(DL)、ニューラル・ネットワークなどの要求の厳しい人工知能(AI)アプリケーションに適しています。

数百から数千の処理コアを搭載した画像処理ユニット(GPU)は、機械学習モデルのトレーニングに必要な種類の並列処理と浮動小数点計算に優れています。一方、一部の種類のAIモデルでは、特に軽いワークロードでは、CPUの方が適しているかもしれません。

GPUは元々画像レンダリング用に設計されたもので、グラフィック・カードとも呼ばれます。しかし、これらの強力なプロセッサーはさらに多くの機能を備えています。高速な計算能力と高度な並列処理機能により、GPUはロボット工学、高性能コンピューティング(HPC)データセンター、そして特に人工知能などの業界で非常に求められています。

GPUほど強力ではありませんが、中央処理装置(CPU)はあらゆるコンピューター・システムの最も重要なコンポーネントです。一般的に「コンピューターの頭脳」と考えられているCPUは、GPU(存在する場合)の管理を含む、すべての高レベルのコンピューター管理タスクを処理します。

ほとんどの機械学習タスクでは、大規模なデータセットを解析するために、より強力なプロセッサーを必要としますが、小規模な機械学習アプリケーションであれば、多くの最新のCPUで十分対応できます。GPUは機械学習プロジェクトで人気がありますが、需要の増加はコストの増加につながる可能性があります。また、GPUはCPUよりも多くのエネルギーを必要とするため、エネルギーコストと環境への負荷も増加します。

機械学習プロジェクト用のプロセッサーを選択する場合、CPUの方がコスト効率が高い可能性がありますが、中程度に高度なAIプロジェクトのほとんどはGPUの並列処理のメリットを享受できます。

ニュースレターを表示しているスマホの画面

The DX Leaders

「The DX Leaders」は日本語でお届けするニュースレターです。AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。

機械学習を理解する

コンピューター・サイエンスにおいて、機械学習(ML)とは、人間が自律的にタスクを実行する方法をコンピューターが模倣できるようにする特定の種類のアルゴリズムの研究、実践、応用を意味します。機械学習が可能なコンピューターは、より多くのデータにさらされるにつれて、繰り返しを通じて時間の経過とともにパフォーマンスの精度を向上させることができます。

機械学習アルゴリズムは、意思決定プロセス、誤差関数、モデル最適化プロセスという3つの基本コンポーネントに分類できます。

  1. 意思決定プロセス:機械学習システムは、高い精度で望ましい結果をもたらし、人間の介入をほとんどまたはまったく必要としない、根拠のある意思決定を行うように設計されています。意思決定プロセスは、ある程度の入力データに応答し、予測または分類の形式で応答を作成します。
  2. 誤差関数:機械学習アルゴリズムが決定を下すと、その出力の正確性を評価します。誤差関数を使用することで、出力を既知または以前に特定されたエラーと照合して、出力が十分な精度しきい値を満たしているかどうかを判断できます。
  3. モデル最適化プロセス:機械学習アルゴリズムの特徴は、間違いから「学習」し、意思決定プロセスを自動的に調整して、より正確な結果を提供する能力です。モデル最適化プロセスでは、モデルのトレーニング用データ内のデータ・ポイントを使用して、継続的に予測を行い、評価します。このプロセスを繰り返すことで、モデルは自己調整し、時間の経過とともに精度が向上します。

機械学習の種類

機械学習は、採用されるアルゴリズムの種類と使用されるデータの規模に応じて、主に3つのタイプに分類できます。ディープラーニングという用語は機械学習と同じ意味で使われることが多いですが、ディープラーニングはニューラル・ネットワークのサブセットであり、ニューラル・ネットワークは機械学習のサブセットです。

これら3つの用語はすべて人工知能(AI)のサブセットとみなすことができ、3つの用語すべてを機械学習の範疇に含めることができますが、それぞれに微妙な違いがあります。

  • 機械学習:従来の機械学習では、アルゴリズムを使用して履歴からまず表面的なパターンを分析し、人間の介入をほとんどまたはまったく必要とせずに予測を提供します。このタイプの機械学習では、望ましい結果や正確な結果を予測する能力を向上させるために、大規模かつ継続的に更新されるデータセットが必要です。
  • ニューラル・ネットワーク:ニューラル・ネットワークは大量のデータでトレーニングされ、ノードを使用して人間の脳の意思決定プロセスを模倣します。ニューラル・ネットワークをトレーニングする際、アルゴリズムは入力データを標準化されたデータセットと比較し、起こりうる予測の妥当性と潜在的なエラーをチェックします。
  • ディープラーニング:ニューラル・ネットワークの進化形であるディープラーニングという用語は、3層以上の意思決定ノードを持つニューラル・ネットワーク・モデルを使用するアルゴリズムAIの一種を指します。

機械学習のユースケース

最近のAI技術の進歩により、産業界や日常生活における機械学習アプリケーションが急増しています。一般的な機械学習のユースケースは次のとおりです。

  • 音声認識:機械学習は、コンピューターの音声認識で使用され、自然な音声パターンを識別し、音声コマンドの暗黙の意味を理解します。音声認識は、スマート・スピーカーやSiriなどのデジタル・アシスタントなどのツールの基盤となるテクノロジーです。
  • 推奨エンジン:これまで以上に多くの選択肢に直面しているAI搭載の推奨エンジンは、情報を整理して、ユーザーの好みに合った質の高い提案を提供します。GoogleやBingなどの検索エンジンは、より良い検索結果を提供するために機械学習を活用しています。SpotifyやNetflixなどのメディア・プラットフォームは、MLを使用して、消費者の過去の好みに基づいて新しい番組や曲を提案します。
  • 不正アクセス検出:銀行やその他の金融機関は、不正アクセス検知により、機械学習を使用して疑わしい取引を見つけることができます。教師あり学習では、既知の不正取引に関する情報を使用してモデルをトレーニングできます。異常検知は、異常に見え、詳細な調査に値する取引を特定できます。
AI Academy

ハイブリッドクラウドでAI対応を実現

IBMのエキスパートが主催するこのカリキュラムは、ビジネス・リーダーが成長を促進するAI投資に優先順位を付けるために必要な知識を習得できます。

CPUとGPUの主な違い

CPUとGPUの主な違いは、順次処理と並列処理にあります。CPUは命令を処理し、問題を順番に素早く解決するように設計されています。一方、GPUは並列コンピューティングのメリットを享受できる大規模なタスク向けに設計されています。GPUは、重要な問題を同時に解決できる小さな問題に分割する能力に優れているため、集中的な機械学習アプリケーションの速度と効率を向上させることができます。

CPUの主要な特性

CPUは、基本的な計算、メディアの再生、Web閲覧などの一般的なコンピューティング・タスク向けに設計されています。コンピューターの「頭脳」として、コンピューターのハードウェアとオペレーティング・システムの円滑な動作に必要な、舞台裏のプロセスと機能もすべて処理します。

主要な機能:

  • 標準コンポーネントには、データが処理される1つ以上のロジック・コア、メモリー・ユニット、CPUクロック、および制御ユニットが含まれます。CPUはタスクを順番に処理するため、より多くのコアにアクセスできれば、CPUは問題を複数のプロセッサに分散してマルチタスクを実行できます。
  • CPUはデータを順次処理し、優れた速度で問題を次々に分解しますが、容量は限られています。大規模なデータセットは重大なボトルネックを引き起こす可能性があります。
  • CPUには、高速で動作するコアがGPUと比較して少なくなっています。

長所:

  • CPUは汎用的な使用ケース向けに設計されており、一般的なアプリケーションに必要なほとんどの種類の計算を処理できます。
  • CPUはコンピューティング機器の基本的な部分です。そのため、これらは一般に入手可能で、コストが低く、プログラミングも簡単です。

短所:

  • コア数を増やしても、特定の種類の問題ではシーケンシャルCPUは常にGPUより処理速度が遅くなります。そのようなケースでは、並列コンピューティングが処理速度を最適化する唯一の方法となります。

GPUの主要な特製

GPUはもともと画像のレンダリング用に設計されていましたが、2006年にNvidia社がGPUプログラミング・プラットフォーム「CUDA」を導入して以来、開発者はこれらの強力なプロセッサーを実にさまざまな用途で活用してきました。GPUは、高品質の動画コンテンツをレンダリングしたり、大規模で複雑なデータセットを処理したりするシステムの処理能力を高めるため、CPUに追加的に使用されます。

主要な機能:

  • GPUは、並列処理に最適化された、より低速で実行される多数のコアを備えた設計になっています。GPUは複雑な問題を何千もの小さなタスクに分割し、順番にではなく同時に処理します。

長所:

  • GPUの並列処理機能により、命令をバッチ処理してニッチな計算を非常に効率的に実行できることが特徴です。GPUコアはCPUコアよりも低速ですが、累積的に並列処理することで、大規模で複雑な問題を順次処理するよりも速く解決できます。
  • GPUはCPUよりもプログラミングが複雑ですが、PythonやTensorflowなどの一般的な機械学習プログラミング言語やフレームワークに最適化されています。

短所:

  • GPUはCPUよりも高価で、簡単には入手できません。
  • GPUのプログラミングには、専門知識が必要です。

CPUとGPUの3つの重要な相違点

CPUとGPUの違いは、主に、アーキテクチャー、処理速度、アクセシビリティーという3つの領域に集約されます。

  1. アーキテクチャー:CPUは、データを順番に処理するために、より少ないコア数で設計されています。GPUには通常、並列処理用に設計された数百から数千のコアが搭載されています。
  2. 処理速度:CPUは一般的なタスクやトップレベルのタスクを高速に処理するように設計されており、機械学習で使用されるような非常に大規模なデータセットの処理を得意としません。一方、GPUは、このような大規模なデータセットを処理するために特別に調整されています。ほとんどの機械学習アプリケーションでは、GPUはCPUのパフォーマンスを大幅に上回ります。
  3. アクセシビリティー:CPUはGPUよりも一般的であり、そのため、導入と運用にかかるコストが低くなります。GPUをプログラミングするには、より専門的なトレーニングも必要です。ただし、GPUは機械学習やAIのユースケースでは一般的であり、強力なライブラリーとコミュニティーがサポートを提供しています。

機械学習アプリケーション用のCPUとGPUの違い

CPUとGPUはどちらも処理装置です。どちらも同様のタスクを処理できますが、特定のアプリケーションの要求に応じてパフォーマンスのレベルが異なります。どちらも単一のユニットと考えることもできますが、それぞれ異なる種類の操作のために設計および配置されたさまざまなコンポーネントの集合体です。

CPUはGPUよりも前から存在し、ノートパソコンやスマートフォンから衛星やスーパーコンピュータに至るまで、あらゆるコンピューター・システムにおいて最も重要かつ基本的な部分を構成しています。CPUは目に見えないマネージャーのように動作し、入力と要求を読み取って解釈し、計算を実行するための命令を発行し、コンピューター・システムのすべての操作を監視します。

GPUはより強力ですが、CPUの代わりに使用されることはありません。むしろ、コプロセッサーとして、GPUはコンピューター・システムの機能を拡張するために使用されます。GPUを使用するシステムでは、CPUはGPUタスクや、それほどリソースを消費しないもののコンピューターの機能に不可欠なその他のすべての処理タスクの管理において依然として重要な役割を果たします。

GPUが機械学習に最適な理由

大規模なデータ処理でCPUを使用すると、性能が十分ではないため、問題が頻繁に発生し、ストレスを感じるでしょう。コンピューター・サイエンスとデータサイエンスの交差点に位置する機械学習アルゴリズムでは、多くの場合、GPUを活用して、ディープラーニング・モデルのトレーニングに使用される大規模なデータセットの処理を高速化し、レイテンシーを削減します。これは、マルチコアCPUであっても、GPUとは異なる方法でデータを処理するためです。

構造上、GPUコアの数は通常数千個ですが、ほとんどのコンシューマー・グレードのCPUには1、2、4、または6個のコアしか搭載されていません。サーバー・グレードのCPUには数百個ないし数千個のコアが搭載されている場合もありますが、コアの数だけではパフォーマンスは決まりません。

マルチコアCPUはシングルコアCPUよりもマルチタスクに優れていますが、それでもデータは順番に処理されます。GPUは、並列コンピューティングと呼ばれるプロセスを通じて、データを異なる方法で処理します。GPUは、タスクを順番に処理するのではなく、問題を構成要素に分割し、多数のコアを使用して問題のさまざまな部分を同時に処理します。

AIシステムのコンピューター・ビジョン生成AIプログラムを実現するなどの要求の厳しいタスクでは、並列コンピューティングの方が順次処理よりもパフォーマンスがはるかに優れています。

並列処理機能を備えたGPUは、今後もAIプロジェクトで重要なコンポーネントであり続けるでしょう。特に機械学習では、GPUは機械学習アプリケーションのトレーニング時間を短縮し、推論を行って有用な結果を生成するためにMLシステムに必要なテンソル計算や行列乗算を実行するために使用されます。

関連ソリューション
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Centerは、IBM zSystemsおよびIBM LinuxONE上のプライベートクラウドのインフラストラクチャーを管理するためのOpenStack互換ソフトウェア・プラットフォームです。

Cloud Infrastructure Centerの詳細はこちら
ITインフラストラクチャー・ソリューション

企業のハイブリッドクラウドとAI戦略のために設計された、サーバー、ストレージ、ソフトウェアを紹介します。

ITインフラストラクチャー・ソリューションはこちら
クラウド・ソリューション

安全性と柔軟性を備えたクラウドで、ビジネスの成長に合わせてリソースを無理なく拡張できます。

クラウド・ソリューション
詳細情報はこちら

IBMのハイブリッドクラウドとAI対応ソリューションで、企業インフラを変革しましょう。ビジネスを保護、拡張、モダナイズするために設計されたサーバー、ストレージ、ソフトウェアを発見したり、専門家のインサイトにアクセスして生成AIストラテジーを強化したりできます。

ITインフラストラクチャー・ソリューションはこちら 電子書籍を読む