(2022/9/4追記)第12世代Core i5+GeForce RTX 3090マシンのベンチマーク結果を追加しました。
(2022/4/3追記)M1 Macのベンチマーク結果を追記しました。
(2022/2/23追記)第10世代Core i7+GeForce RTX 3060マシンのベンチマーク結果を追加しました。
これまでに当サイトでは以下のような機械学習環境構築について紹介してきました。
- Jetson-Nanoの使い方 JetPack4.3でTensorflowとDeepStream
- NVIDIA GPU搭載MacBook ProにUbuntu 18.04を入れてCUDA/cuDNN/Tensorflow機械学習環境を構築
- Google ColabでGPU/TPU使用の機械学習
これらの実行速度をTensorflowのMNIST(機械学習のHello Worldと言える手書き文字認識)を使って比較した結果をまとめました。
MNISTの学習パラメータは短時間で終わるものとなっているため、演算量の多い学習をさせると結果が変わることが予想されます。
M1はチップ内にCPUとGPUがあり、CPU-GPU間のデータのやり取りは高速と考えられるため、学習自体の演算量が少なく、データ転送が頻繁に発生する今回の評価は、M1に有利に働いているはずです。
重い学習をさせる場合、学習の演算量が多くなればなるほど、データ転送の比率は下がり、学習自体の処理能力が効いてきて、よりNVIDIA GPUに有利になると考えられ、M1との差が広がることが予想されます。
MNIST実行時間一覧
Machine | Compute Engine | Real Time (s) |
---|---|---|
自作PC Core i7-12700 | GPU: GeForce RTX 3090 | 18 |
自作PC Core i5-10500 | GPU: GeForce RTX 3070 Ti | 40 |
MSI GF65 Thin 10UE 15.6" | CPU: Intel Core i7-10750H 6-Core/12-Thread 2.6GHz | 372 |
GPU: GeForce RTX 3060 6GB | 51 | |
Google Colab | CPU | 1694 |
GPU: Tesla K80 | 53 | |
TPU | 99 | |
自作PC Z390 Pro.4 | GPU: GeForce RTX 3050 8GB | 83 |
M1Pro MacBook Pro 14-inch 2021 | 10-Core CPU (8 performance, 2 efficiency) device_name=any, cpu | 207 |
16-Core GPU device_name=gpu | 137 | |
M1 MacBook Pro 13-inch 2020 | 8-Core CPU (4 performance, 4 efficiency) device_name=any, cpu | 214 |
8-Core GPU device_name=gpu | 208 | |
MacBook Pro 15-inch 2019 | CPU: Core i9 9880H 8-Core/16-Thread 2.3GHz | 401 |
MacBook Pro 15-inch Late 2013 | CPU: Core i7 4850HQ 4-Core/8-Thread 2.3GHz | 569 |
GPU: GeForce GT 750M 2GB | 424 | |
MacBook Pro 15-inch Mid 2012 | CPU: Core i7 3615QM 4-Core/8-Thread 2.3GHz | 872 |
GPU: GeForce GT 650M 1GB | 453 | |
Jetson Nano | GPU: GM20B | 908 |
まとめ
NVIDIA GeForce RTX 3090を搭載したマシンが試した中で最速でした。
Google Colabのようなクラウドで実行するのではなく、ローカルでいろいろ試したいという方も多いと思いますので、そういう方にはNVIDIA GPU搭載マシンは有用です。
CPUでの処理はGPUに比べてかなり遅く、少なくともRTX 3060の7倍以上の時間がかかってしまうことがわかりました。
この7倍をどう見るかですが、新しい世代のCPUであれば、GPUよりは遅いが、学習規模によっては許容できる場合もあると考えられます。
実際、第9世代Core i9(8-Core/16-Thread)よりも第10世代Core i7(6-Core/12-Thread)の方が速いという結果で、さらに最新の12世代CPUであれば、その処理速度を活かした機械学習もあり得そうです。
M1 MacBook Proでtensorflow_macos環境を使用し、下記device_nameをany, cpu, gpuと変えて実行したが、結果は大きく変わらず、200秒以上となり、GeForce RTX 3060と比べるとだいぶ遅い結果となりました。
from tensorflow.python.compiler.mlcompute import mlcompute mlcompute.set_mlc_device(device_name="any")
device_name="any"
の場合にアクティビティモニターを見るとGPUは使用されておらず、cpuの場合と同様になっているようでした。
anyとした場合はCPUとGPUをフルに使って高速に処理されることを期待していましたが、そのようにはなりませんでした。
device_name="gpu"
とするとアクティビティモニターでGPUの使用率が上がるため、GPUが使われていることはわかりましたが、処理速度はCPUと大差無しでした。
M1搭載のMacはIntel CPUのマシンより高速ですが、機械学習向きかという点については、NVIDIA GPUにはかなわないと言わざるを得ません。
古いMacに搭載された古いGPUは、最近のRTXシリーズのような性能は出ず、CPUと同程度の性能でした。
最新のCPUと同程度の処理性能が出るということは、コスパとしては良いと捉えることもできます。
表に記載したNVIDIA GPU搭載のMacは、既に中古でしか手に入りませんが、オークションサイトなどで安ければ5〜8万くらいで買えそうです。(2022年2月現在)
ただし、この記事に書いたように環境構築はとても面倒です。
Jetson-NanoはMacには及ばない結果でしたが、新品で1万5千円、中古で8〜9千円くらいなので、低予算で始めるにはコレ1択になりますね。
Jetson-Nanoは環境設定も比較的簡単ですので、これから機械学習を始める方には特にオススメです。