Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

GPU (Graphics Processing Unit)

GPUは、並列演算向けに設計された数千個のコアを持つプロセッサであり、ディープラーニングモデルの学習と実行に使われる主要なハードウェアです。

グラフィックス処理装置(GPU)は、何千もの単純なコアを備え、多数のデータに同じ演算を同時に実行するプロセッサーです。GPUは3Dグラフィックスのレンダリング用に開発されました。これは、何百万ものピクセルや頂点を並列に計算することを意味します。ディープラーニングの主要なハードウェアとなったのは、ニューラルネットワークの学習と推論の大部分が、同じ方法で並列化できる行列乗算だからです。2007年に公開されたNVIDIAのCUDAプラットフォームにより、NVIDIAのGPUは汎用計算向けにプログラム可能になりました。2012年には、2基のNVIDIA GTX 580 GPUで5~6日間学習したAlexNetネットワークが、ImageNetチャレンジで優勝しました。トップ5エラー率は15.3%で、次点の26.2%を大きく下回りました。現在、PyTorch、TensorFlow、JAXは、CUDA経由でNVIDIA GPU、ROCm経由でAMD GPU、Metal経由でAppleシリコン上で動作します。数千基のGPUを備えたクラスターが、最大規模の基盤モデルを学習します。

GPUがディープラーニングを高速化する仕組み#

CPUは、少数のコアで分岐を含むコードを高速に実行できるよう、チップ面積の大部分をキャッシュと制御ロジックに使います。GPUはその面積を演算に割り当てます。NVIDIA GPUはストリーミングマルチプロセッサに分かれ、それぞれがワープと呼ばれる32スレッドのグループを実行します。同じ命令を異なるデータに適用する仕組みです。メモリ待ちのワープがある間に別のワープが演算するため、十分な並列処理があればチップを稼働させ続けられます。2017年のVolta世代以降、NVIDIA GPUにはTensor Coresも搭載されています。これは、小さな行列を低精度で1ステップで乗算するユニットで、現在ではFP8や、Blackwell世代以降のFP4にも対応しています。NVIDIA A100は標準的なFP32演算で最大19.5 TFLOPS、Tensor CoresでBF16演算を行う場合は312 TFLOPSに達します。そのため、GPU学習の大半で混合精度が使われます。このコードでは、CPUとGPUで同じ行列乗算の実行時間を計測します。

import time

import torch

gpu = torch.accelerator.current_accelerator()  # cuda, mps, or xpu device on this machine
a = torch.randn(4096, 4096)
b = torch.randn(4096, 4096)

for device in (torch.device("cpu"), gpu):
    x, y = a.to(device), b.to(device)
    x @ y  # warm-up run
    torch.accelerator.synchronize()
    start = time.perf_counter()
    for _ in range(10):
        x @ y
    torch.accelerator.synchronize()  # GPU calls return immediately, so wait for them to finish
    seconds = (time.perf_counter() - start) / 10
    print(f"{device.type}: {seconds * 1000:.1f} ms per multiply, {2 * 4096**3 / seconds / 1e12:.1f} TFLOPS")

Apple M5 Pro搭載のノートパソコンではcpu: 80.0 ms per multiply, 1.7 TFLOPSとmps: 18.3 ms per multiply, 7.5 TFLOPSが出力され、内蔵GPUはFP32で約4.4倍高速です。データセンターGPUでは、コア数の増加に加え、重みや活性化値をコアに十分供給できる数TB/sの帯域幅を持つ高帯域幅メモリ(HBM)により、性能差はさらに広がります。VRAMとも呼ばれるGPUメモリは、1台のデバイスに収まるモデルの大きさとバッチサイズも制限します。勾配チェックポイントや分散学習などの手法は、この制限を回避するために使われます。

GPUでのモデル学習とデプロイ#

学習ジョブでGPUを稼働させ続けるには、パイプラインのほかの部分も処理に追いつく必要があります。CPUワーカーは画像を十分な速度でデコードして拡張し、バッチはコアを使い切れる大きさにし、Tensor Coresでは低精度で演算する必要があります。GPU使用率が低い場合は、通常、次の工程のいずれかに問題があります。

Ultralytics YOLOは、利用可能な場合、デフォルトで最初のCUDA GPUを使って学習します。device=[0, 1]を指定するとマルチGPU学習に対応し、batch=-1を指定するとAutoBatchを実行します。AutoBatchはGPUの空きメモリを測定し、その約60%を使用するバッチサイズを選択します。ローカルのハードウェアを持たないチームは、学習ごとにUltralytics PlatformでクラウドGPUを選択できます。推論では、YOLO26nモデルをTensorRTにエクスポートすると、NVIDIA T4 GPU上で640ピクセル画像を1.7 msで処理できます。ONNXを使ったCPU上の38.9 msと比べて高速です。このコードでは、最初のGPUとAutoBatchを使ってYOLO26を学習します。

from ultralytics import YOLO

# 最小のYOLO26検出モデルを読み込む
model = YOLO("yolo26n.pt")

# GPU 0で学習し、AutoBatchにGPUメモリに応じたバッチサイズを設定させる
results = model.train(data="coco8.yaml", epochs=3, imgsz=640, device=0, batch=-1)

GPUとCPU、TPU、NPUの比較#

  • CPU: 汎用的な分岐コード向けの少数の高性能コアです。CPUはほとんどの学習パイプラインでデータ読み込みと前処理を行い、アクセラレーターがない環境では推論も処理します。
  • GPU: 数千のプログラム可能なコアとTensor Coresを備えています。GPUはほぼすべてのモデルとフレームワークを実行でき、複数のベンダーから提供され、主要なクラウドサービスで利用できます。
  • TPU: 大規模な行列乗算ユニットを中心に構成された、Googleの用途特化型チップです。TPUはGPUの柔軟性と引き換えに、大規模で密な行列演算の効率性を高めており、Google Cloudから利用できます。
  • NPU: スマートフォン、ノートパソコン、エッジデバイスに搭載される低消費電力のニューラルネットワークアクセラレーターで、学習ではなく推論に使われます。

実際のアプリケーション#

  • 大規模モデルの学習: 数十億のパラメーターを持つ言語モデルやビジョンモデルは、NVLinkやInfiniBandなどの高速リンクで接続された数千基のデータセンターGPUクラスターで学習されます。
  • リアルタイム動画分析: 1基のGPUで、交通監視、小売分析、工場検査向けに、多数のカメラストリームの物体検出と追跡を同時に実行できます。
  • ロボティクスと自動運転車: NVIDIA Jetsonなどの組み込みGPUモジュールは、車載で知覚モデルを実行します。カメラデータをサーバーに送信すると遅延が大きくなりすぎるためです。
  • 医用画像処理: GPUは大規模な3D CTやMRIボリュームを処理し、臓器や腫瘍のセグメンテーションを数分ではなく数秒で実行します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう