CPU
CPUは、コンピューターの汎用プロセッサです。AIではデータの読み込みと前処理、アクセラレーターの制御、GPUが使えない環境での推論を担います。
中央処理装置(CPU)は、コンピューターのオペレーティングシステムやプログラムを実行する汎用プロセッサーです。少数の高性能コアで命令を実行し、各コアは1つの命令ストリームを高速に処理できるよう設計されています。大容量キャッシュ、分岐予測、アウトオブオーダー実行により、複雑で分岐の多いコードも高速に処理します。人工知能(AI)システムでは、CPUはデータの読み込みとデコード、データ拡張、GPUなどのアクセラレーターへのデータ供給、モデルの前後処理を担います。たとえば推論前の画像リサイズや、物体検出後の非極大値抑制を行います。また、アクセラレーターがない場合やコストに見合わない場合には、ノートPCやクラウド関数からRaspberry Piまで、CPU自体がモデルを実行します。そのため、CPUの推論レイテンシはエッジAIモデルの重要な設計目標です。
CPUがニューラルネットワークを実行する仕組み#
ニューラルネットワークの処理時間の大半は行列の乗算に費やされます。CPUは3つの方法でこれを高速化します。小型ボードの4個からサーバーチップの100個超まで、複数のコアがバッチや層の異なる部分を並列処理します。各コア内のSIMD(単一命令・複数データ)ユニットは、1つの命令を多数の数値に同時に適用します。IntelとAMDのx86チップではAVX2とAVX-512、スマートフォン、Appleシリコン搭載Mac、Raspberry PiボードなどのArmチップではNEONが使われ、新しいArmサーバーチップでは、より幅広いSVE拡張も利用できます。近年のチップには行列演算ユニットも搭載されています。たとえば、2023年以降のIntel XeonサーバープロセッサーのAdvanced Matrix Extensions(AMX)や、ArmのScalable Matrix Extension(SME)は、1命令でBF16またはINT8の小さなタイルを乗算します。
CPUのスループットはGPUを大きく下回ります。CPUは数千個の演算ユニットではなく、キャッシュや制御ロジックにチップ面積を割き、シングルスレッド性能を高めているためです。また、重みを読み込む通常のシステムメモリの帯域幅は、GPUの一部にとどまります。推論エンジンはこの差を縮めます。ONNX Runtime、IntelのOpenVINO、TencentのNCNNは、層を融合し、検出した命令セットに最適なカーネルを選択します。また、FP32の重みと比べてデータ量が4分の1となるINT8量子化モデルを実行します。CPUへのデプロイでは、通常、ハードウェアに応じてエンジンと精度を選択します。
Ultralyticsは、この種のハードウェア向けにYOLO26を設計しました。Intel Xeon CPU上のCPU ONNX推論では、YOLO26nはYOLO11nより最大43%高速です。また、OpenVINOへのエクスポートにより、CPU推論を最大3倍高速化できます。このコードではYOLO26をCPUで実行した後、OpenVINOにエクスポートし、エクスポート済みモデルを実行します。
from ultralytics import YOLO
# GPUが搭載されていても、最小のYOLO26検出モデルをCPUで実行します
model = YOLO("yolo26n.pt")
results = model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed) # 前処理、推論、後処理にかかった時間(ミリ秒)
# OpenVINO形式にエクスポートし、同じCPUでエクスポート済みモデルを実行します
path = model.export(format="openvino")
ov_model = YOLO(path)
results = ov_model.predict("https://ultralytics.com/images/bus.jpg", device="cpu")
print(results[0].speed)各speed辞書は、1枚の画像にかかった時間を前処理、推論、後処理に分けて記録します。そのため、2つの出力を比較すると、コードを実行したマシンでのPyTorchとOpenVINOの推論時間を確認できます。
CPU、GPU、TPU、NPUの比較#
- CPU: 汎用的な分岐処理向けの少数の高性能コアです。すべてのコンピューターに搭載され、追加ハードウェアなしであらゆるモデルを実行できますが、以下のアクセラレーターよりスループットは低くなります。
- GPU: 行列演算向けのTensor Coreを備えた多数の単純なコアと、高帯域幅メモリで構成されます。GPUは学習と高スループット推論の標準的なハードウェアです。
- TPU: 大規模な行列乗算ユニットを中心に設計されたGoogleの特定用途向けチップです。Google Cloudで利用できるほか、Edge TPUとして小型推論モジュールでも提供されています。
- NPU: スマートフォン、ノートPC、組み込みチップに搭載される低消費電力のニューラルネットワークアクセラレーターです。Intel Core Ultra、AMD Ryzen AI、Qualcomm Snapdragon、Apple Mシリーズのチップは、CPUコア、GPU、NPUを1つのプロセッサーに統合しています。
実際のアプリケーション#
- 学習データパイプライン: GPUで学習している間、CPUのワーカープロセスはディスクから画像を読み込み、デコード、リサイズ、拡張を行い、バッチを構築します。CPUコアが不足すると、高価なGPUがデータ待ちになります。
- スマートカメラとエッジデバイス: ドアベル、小売店のセンサー、産業用カメラは、自身のプロセッサーで小型検出モデルを実行します。そのため、映像はデバイス内にとどまり、アラートだけが外部に送信されます。
- サーバーレス推論とクラウド推論: クラウド関数やトラフィックの少ないエンドポイントは、CPUのみのインスタンスで実行されることがよくあります。こうしたインスタンスは起動が速く、GPUを確保するより低コストです。
- ローカルの大規模言語モデル: llama.cppなどのプロジェクトは、ノートPCのCPUで量子化GGUFモデルを実行します。生成速度は主に、各トークンの重みをメモリから読み込む速度で決まります。










