機械学習・ディープラーニング GPUとCPUの速度の違いはどのくらいなのか? Windows、Ubuntu双方で検証
機械学習、ディープラーニングで学習および推論を行う時、特に学習にかかる時間はとても長いです。1週間PCを回しっぱなしなんて事も。。。。 そこで学習速度の向上のためにGPUを導入します。 GPUは、超大量のコア数(計算する人の人数とでも思ってください)があるのが特徴。一つ一つの計算能力ではCPU(いわゆる普通のコンピュータの頭脳です)に劣るのですが、CPUではせいぜい10〜20コアくらいのところ数千というコア数で計算できます。そのため同じ計算を一斉に行う機械学習の様な処理ではCPUよりもはるかに速い計算処理を行う事が可能です。 では実際にどのくらい速いのでしょうか? 今回機械学習・ディープラーニングの標準GPUと言えるNvidiaのGPUを取り上げ、Windows、Ubuntu 双方について検証します。(ちなみにMACはNvidiaのGPUの搭載が大人の事情で現在できませんので検証できません、、、) 使用機種WindowsとUbuntuのデュアルブート OS:Windows10 構成CPU:Intel Core i9-9990KGPU:Nvidia Geforce RTX2080tiドライバー:430.86CUDA:10.2CuDNN:7.5 ちなみに上図ではGPUで学習中の使用状況を表示しています。計算には56%、メモリは10GBほど使用しているのがみて取れます。 まずはKerasを使用し、バックエンドでTensorFlowを動かしています。この手の検証で使用される代表手法と言えるmnist(画像認識の学習)ファイルを使用して検証してみましょう。 GPUとCPUの学習速度検証 Windows編 mnistをCPUで 1epoch37秒ほどです。12 epoch学習させていますので7分25秒ほどです。 Windows編 mnistをGPUで 1 epoch3.5秒ほど。12 epochでも45.5秒です。約10倍という速度で学習できています。 Windows編 CPUで音楽データを500曲学習 今度は音楽データを学習させました。音楽データは全て8小節の単音データ。TensorFlowを使用しています。結果は上図の通り。10回の学習x10で100回平均14秒x10で2分20秒ほどです。 Windows編 GPUで音楽データを500曲学習 こちらも10回の学習x10で1
機械学習・ディープラーニング GPUとCPUの速度の違いはどのくらいなのか? Windows、Ubuntu双方で検証 Read Post »