GPUとは—構造と動作原理

著者: IT Sectr 公開日: 2026-06-10 読了時間: 9 分

GPU(Graphics Processing Unit)は、グラフィックデータの並列処理に特化したプロセッサで、1フレームあたりピクセルと頂点に対して数百万の計算を実行します。低レイテンシの逐次タスクに最適化されたCPUとは異なり、GPUには大規模な数学演算のために数千の低消費電力コアが搭載されています。NVIDIA Developer Blog(2025)によると、最新のモバイルGPUには最大1024コアが搭載され、コンピュートワークロードで2TFLOPSの性能を達成しています。開発者はレンダリング、ポストプロセッシング、デバイス上の機械学習にGPUを統合しています。

重要なポイント

  • GPUは、グラフィックスと計算の並列処理のために数千のコアを備えた専用プロセッサです。
  • GPUアーキテクチャはSIMDパイプラインに基づいています。1つの命令が複数のデータ要素に対して同時に実行されます。
  • モバイルデバイスのGPUはSoCに統合され、Unified Memoryアーキテクチャを介してCPUとメモリを共有します。
  • GPUコンピューティング(GPGPU)は、グラフィックス以外のタスク(ML、暗号化、信号処理)にグラフィックプロセッサを使用します。
  • GPUアクセスAPI(モバイルプラットフォーム):Vulkan、Metal、OpenGL ES、ブラウザ向けWebGL。

GPUとは?

GPU(Graphics Processing Unit)は、大規模な並列処理向けに設計された専用マイクロチップです。最初のGPUは1990年代後半にデスクトップPC向けの3Dグラフィックスアクセラレータとして登場しました。それ以来、アーキテクチャは固定機能パイプラインからプログラマブルシェーダー、汎用コンピュートユニットへと進化してきました。

GPUの主な目的はラスタライゼーションです。幾何データ(頂点、三角形)を画面上のピクセルに変換します。このプロセスには、頂点変換、非表示面の除去、テクスチャリング、カラーブレンディングが含まれます。これらの操作はすべて、数千の要素に対して並列に実行されます。

Jon Peddie Research(2025)によると、モバイルGPU市場はグラフィックプロセッサ総量の58%を占め、PCやサーバー向けの個別ソリューションを上回っています。すべてのスマートフォンには、CPU、DSP、ニューラルプロセッサとともにSystem-on-Chip(SoC)に統合された少なくとも1つのGPUが搭載されています。

最新のGPUは、統合型(SoCに内蔵され、CPUとメモリを共有)と個別型(独自のビデオメモリを備えた独立したボード)の2種類に分かれます。モバイル開発では、Qualcomm Adreno、ARM Mali、Apple GPU、Imagination PowerVRなどの統合型GPUのみが使用されます。

GPU開発の歴史

GPUの進化は、固定機能パイプライン(1999~2006年)、統一シェーダー(2006~2016年)、プログラマブルコンピュートコア(2016年~現在)の3つの段階を経てきました。最初の段階では、変換、ライティング、テクスチャリングという厳格な操作シーケンスが定義されていました。開発者はパイプラインに介入できませんでした。

統一シェーダーの登場により、GPUはHLSLやGLSLで書かれた任意のプログラム(シェーダー)を実行できるようになりました。これにより、グラフィックス以外のタスクにGPUを使用するGPGPUへの道が開かれました。第3段階では、機械学習用のテンソルコアとリアルタイムレイトレーシングが追加されました。

モバイルGPUにおける重要なマイルストーンは、Tile-Based Deferred Rendering(TBDR)の導入でした。これは、フレームをタイル(16×16ピクセル)に分割し、高速なオンチップメモリで処理するアーキテクチャです。これにより、デスクトップGPUに典型的なイミディエイトモードレンダリングと比較して、消費電力が3~5分の1に削減されます。

GPUアーキテクチャ

GPUアーキテクチャはCPUとは根本的に異なります。いくつかの強力なコアと大容量キャッシュの代わりに、GPUにはSIMD(Single Instruction, Multiple Data)向けに最適化された数百または数千のシンプルなコンピュートユニットが含まれています。1つの命令が複数のデータ要素に対して実行されます。

GPUの基本構成要素は、Shader Core(NVIDIA用語)またはExecution Unit(Intel)です。複数のそのようなブロックがCompute Units(AMD)またはStreaming Multiprocessors(NVIDIA)に結合されます。各ブロックには、演算用ALU、レジスタファイル、ワープスケジューラ(スレッドグループ)が含まれています。

モバイルGPUはアーキテクチャ的にデスクトップGPUとは異なります。Qualcomm Adrenoは、プログラマブルシェーダープロセッサと専用のラスタライゼーションブロックを備えたアーキテクチャを使用しています。ARM MaliはBifrostまたはValhallに基づいており、これらはクォーテットワープ処理を備えたアーキテクチャです。Apple GPUは2017年から独自設計で、Metalと統合メモリをサポートしています。

メーカーGPUシリーズアーキテクチャAPI
QualcommAdreno 6xx/7xx/8xxプログラマブルシェーダープロセッサVulkan、OpenGL ES
ARMMali-GシリーズBifrost/ValhallVulkan、OpenGL ES
AppleApple GPU(A13~A18)カスタム設計Metal
ImaginationPowerVR IMGFurian/B-SeriesVulkan、OpenGL ES

モバイルGPUの重要な特徴はUnified Memory Architecture(UMA)です。GPUとCPUは専用のビデオメモリなしで同じRAMを共有します。これによりデータ交換のレイテンシが低減され、プログラミングが簡素化されますが、集中的な計算時の帯域幅が制限されます。

GPU vs CPU:主な違い

CPUは最小レイテンシの逐次タスク向けに設計されています。大容量のL1/L2/L3キャッシュ、分岐予測、投機実行を備えた4~12個の強力なコアを搭載しています。一方、GPUはレイテンシを犠牲にしてスループットを追求します。数千のコアが高いレイテンシでデータを処理しますが、総合的なパフォーマンスは非常に大きくなります。

その差はFLOPS(1秒あたりの浮動小数点演算)に現れます。2025年のトップモバイルSoC:CPU — 200GFLOPS、GPU — 2400GFLOPS。GPUは並列処理が可能なタスクにおいてCPUの12倍の性能を発揮します。ただし、逐次アルゴリズムでは、スレッド管理のオーバーヘッドが少ないCPUの方が高速です。

実際には、開発者はアプリケーションロジック、UI、I/OにCPUを使用し、レンダリング、画像処理、物理シミュレーション、ニューラルネットワーク推論にGPUを使用します。Google Android Performance Patterns(2025)によると、モバイルアプリケーションにおけるGPUの最適負荷は60~80%であり、過負荷はスロットリングと過熱を引き起こします。

cpp
// CPU — sequential processing
for (int i = 0; i < N; i++) {
    result[i] = data[i] * 2.0f;
}

// GPU — parallel processing (GLSL compute shader)
#version 300 es
layout(local_size_x = 256) in;
void main() {
    uint idx = gl_GlobalInvocationID.x;
    result[idx] = data[idx] * 2.0f;
}

CPUコードは各要素に対して逐次的に乗算を実行します。GPUバージョンは256スレッドを並列に起動し、各スレッドが自身の要素を乗算します。N=100万の場合、GPUは単一のCPUコアよりも100~1000倍高速にタスクを完了します。

モバイルデバイスにおけるGPU

モバイルGPUは厳しい熱および電力制約の下で動作します。一般的なモバイルGPUのTDPは2~8Wで、デスクトップの150~450Wとは対照的です。そのため、ピーク性能ではなくエネルギー効率に焦点を当てた特別なアーキテクチャが必要です。

主要な省電力技術はTile-Based Renderingです。フレームは16×16または32×32ピクセルのタイルに分割されます。各タイルは高速SRAM(Tile Memory)で完全に処理され、その後外部DRAMに書き込まれます。これにより、イミディエイトモードと比較してメモリアクセスが4~10分の1に削減されます。

Qualcomm Adrenoは最も普及しているモバイルGPUです。Adreno 750(Snapdragon 8 Gen 3)は共有レジスタプールを備えた12個のシェーダープロセッサを搭載しています。Vulkan 1.3、OpenGL ES 3.2、OpenCL 3.0、ハードウェアレイトレーシングをサポートしています。Qualcomm(2025)によると、Adrenoは消費電力を維持しながら世代ごとに45%の性能向上を実現しています。

ARM MaliはAndroidデバイスで2番目に人気のあるGPUです。Mali-G720は、Variable Rate ShadingとASTC HDRをサポートする第5世代Valhallアーキテクチャに基づいています。Maliの特徴はクォーテット処理です。4つのスレッドが1つのワープに結合され、ALUの使用率が向上します。

Apple GPUはMetal API専用に設計されています。A13 Bionic以降、AppleはMetal 3、レイトレーシング、メッシュシェーダーをサポートする独自のGPU設計を使用しています。Apple GPUアーキテクチャは、M4 Ultraで最大800GB/秒の帯域幅を備えたUnified Memoryを特徴としています。

消費電力とスロットリング

GPUスロットリング(過熱による周波数低下)は、モバイルゲームにおける主要な問題です。継続的な負荷の下では、SoCの温度が85~95℃に達し、GPUは周波数を30~50%低下させます。AnandTech(2025)によると、Qualcomm Adreno 750はGenshin Impactで15分後に最大35%の性能を失います。

開発者はドローコールの最適化、レンダリング解像度の低下、Foveated Renderingの使用によってスロットリングを軽減できます。iOSのMetal Performance ShadersとAndroidのAndroid Frame Pacing APIは、デバイスの熱予算に合わせて負荷を同期させるのに役立ちます。

GPGPU:GPUコンピューティング

GPGPU(General-Purpose computing on GPU)は、グラフィックス以外の計算にグラフィックプロセッサを使用することです。このアイデアは2000年代半ばに生まれました。開発者がシェーダーを行列演算、暗号化、物理シミュレーションに適応できることに気づいたのです。

現在、GPGPUは大規模な並列処理を必要とするタスクの標準ツールとなっています。機械学習(ニューラルネットワークのトレーニングと推論)、暗号化(ハッシュ、暗号化)、画像およびビデオ処理(フィルター、コーデック)、科学シミュレーション(流体力学、量子化学)などです。

モバイルデバイスでは、GPGPUはCompute Shadersを介してアクセスされます。これはグラフィカル出力のないシェーダーで、データのみを扱います。Compute Shaderはワークグループのグリッドを起動し、各グループには複数のスレッドが含まれます。メモリアクセスは、画面にバインドされることなくバッファとテクスチャを介して行われます。

glsl
#version 310 es
layout(local_size_x = 16, local_size_y = 16) in;
layout(binding = 0) buffer Input  { float data[]; };
layout(binding = 1) buffer Output { float result[]; };

void main() {
    uvec2 idx = gl_GlobalInvocationID.xy;
    uint offset = idx.y * gl_NumWorkGroups.x * gl_WorkGroupSize.x + idx.x;
    result[offset] = sqrt(data[offset]) + 1.0;
}

compute shaderの例は、配列の各要素の平方根を計算します。16×16のワークグループは256要素を同時に処理します。最新のモバイルGPUは最大1024のワークグループと数百万のグローバルスレッドをサポートしています。

GPUを扱うためのAPI

GPUアクセスAPIは、開発者がグラフィックプロセッサにコマンドとデータを送信する方法を決定します。モバイルプラットフォームでは、Vulkan、Metal、OpenGL ESの3つの主要APIが使用されています。それぞれにパフォーマンスと互換性に影響を与える利点と制限があります。

Vulkan

Vulkanは、Khronos Groupによる低レベルクロスプラットフォームAPIで、OpenGLの後継です。Vulkanは開発者にGPUメモリ、コマンドキュー、同期に対する直接的な制御を提供します。Khronos(2025)によると、Vulkanはドライバオーバーヘッドを削減することで、OpenGL ESと比較して30~60%の性能向上を実現します。

Androidでは、VulkanはAndroid 7.0(API 24)以降必須であり、最新のSoCはすべてVulkan 1.3をサポートしています。Vulkan Memory Allocatorと中間表現としてのSPIR-Vにより、GLSL、HLSL、Rust GPUでシェーダーを記述できます。

Metal

Metalは、Appleエコシステムのすべてのデバイス(iPhone、iPad、Mac、Apple TV)向けのプロプライエタリなGPU APIです。Metalは最小限のオーバーヘッドと予測可能なコマンド実行時間を提供します。Apple Developer Documentation(2025)によると、MetalはFPSドロップなしで1フレームあたり最大10万のドローコールを処理します。

主要な特徴はC++ベースのMetal Shading Language(MSL)です。シェーダーはアプリケーションとともにマシンコードにコンパイルされ、Vulkanに典型的なJITコンパイルが不要になります。MetalはMesh Shaders、Ray Tracing、実行時のシェーダー読み込みのためのDynamic Librariesをサポートしています。

OpenGL ES

OpenGL ESは、組み込みシステム向けに簡略化されたOpenGLのバージョンです。古いデバイスや下位互換性のために使用されています。Android Studio(2025)によると、OpenGL ES 3.2はAndroidデバイスの94%でサポートされています。新しいプロジェクトでは、GoogleはOpenGL ESではなくVulkanを推奨しています。

WebGLはOpenGL ESのブラウザベースの類似物で、ウェブ上の3Dグラフィックスの基盤です。WebGL 2.0(OpenGL ES 3.0に相当)はモバイルブラウザの92%でサポートされています。WebGPUは次世代であり、VulkanやMetalに近いアーキテクチャを備えています。

よくある質問

モバイルGPUとデスクトップGPUの違いは?

モバイルGPUは2~8Wの熱設計範囲内で動作し、省電力のためにTile-Based Renderingを使用し、UMAを介してCPUとメモリを共有します。デスクトップGPUは150~450Wを消費し、専用のビデオメモリ(GDDR)を搭載し、Immediate Mode Renderingを使用します。

2026年で最も高性能なモバイルGPUは?

Apple GPU(M4 UltraおよびA18 Proチップ搭載)は、モバイルGPUの中でワットあたりの性能でリードしています。Androidデバイスでは、Snapdragon 8 Gen 4のQualcomm Adreno 850とMediaTek Dimensity 9500のARM Mali-G925がリードしています。

モバイルデバイスでの機械学習にGPUを使用できますか?

はい、GPUはiOSのCore MLやAndroidのTensorFlow Lite/NNAPIを通じてニューラルネットワーク推論に積極的に使用されています。Google(2025)によると、GPUアクセラレーションはCPUと比較して3~10倍の速度向上を提供します。

モバイルゲームでGPUが熱くなりスロットリングする理由は?

スロットリングは熱予算を超えたために発生します。継続的な負荷の下でSoCの温度が85~95℃に達すると、GPUはチップを保護するために周波数を低下させます。解決策はレンダリングの最適化とFPSキャップ(30~45FPS)の使用です。

AndroidでのGPUグラフィックスにはどのAPIを選ぶべきですか?

Vulkanが新しいプロジェクトの主要な選択肢です。OpenGL ESは古いデバイスとの下位互換性のためです。MetalはiOSでは必須です。クロスプラットフォーム開発には、Unity、Unreal Engine、Filamentなどのフレームワークを使用してください。

まとめ

  • GPUは、並列データ処理とグラフィックス高速化のために数千のコアを備えた専用プロセッサです。
  • GPUアーキテクチャは、モバイルSoC向けにSIMDパイプライン、Tile-Based Rendering、Unified Memoryを使用します。
  • GPU vs CPU:GPUは大規模並列タスクでFLOPSにおいてCPUの10~12倍優れていますが、逐次アルゴリズムでは劣ります。
  • Qualcomm、ARM、Apple、ImaginationのモバイルGPUは厳格な2~8Wの制限内で動作し、スロットリングが発生しやすいです。
  • GPGPUはCompute Shadersを介してML、暗号化、画像処理、科学シミュレーションに使用されます。
  • VulkanMetalは最新のモバイルアプリケーション向けの主要APIであり、GPUに対する低レベルの制御を提供します。
  • GPU最適化には、発熱を抑えるためのドローコール管理、FPSキャップ、Foveated Renderingが含まれます。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください