M1 chip内臓のGPUを使ってニューラルネットをアクセラレートするものが使えるようになったということで、
こちらの記事
のとおりに、インストールしてプログラムもダウンロードして実行。
pyenv で普通に導入したpython 3.10だとlzmaが足りないということでエラーがでる。
ので、anacondaを導入してそちらを使ったらあっさり動いた。すばらしい。
MPSを使うとこんなかんじ。
Epoch 1 / 5: time = 95.05[s], loss = 170.33
Epoch 2 / 5: time = 183.52[s], loss = 138.28
Epoch 3 / 5: time = 270.67[s], loss = 124.85
Epoch 4 / 5: time = 356.84[s], loss = 114.28
Epoch 5 / 5: time = 458.32[s], loss = 106.25
Train time on mps: 458.32[s] (Train loss = 106.25)
Test time on mps: 52.92[s](Test loss = 21.62)
CPUだとこんなかんじ。
Epoch 1 / 5: time = 446.72[s], loss = 169.79
Epoch 2 / 5: time = 899.81[s], loss = 136.01
Epoch 3 / 5: time = 1379.53[s], loss = 122.38
Epoch 4 / 5: time = 1818.74[s], loss = 112.07
Epoch 5 / 5: time = 2305.36[s], loss = 105.47
Train time on cpu: 2305.36[s] (Train loss = 105.47)
Test time on cpu: 102.65[s](Test loss = 20.72)
元記事とCPU性能は変わらないけどMPS性能は半分ぐらい、というかんじか。
元記事はMacbook ProでM1 MAX、こちらは Air なのでこんなものだろう。
CPUとMPSの差はざっくり5倍という程度。テストには使えそうなのでうれしい。
しかし、負荷かけるとコア温度が76度ぐらいまでいくな。M1 Airではみたこともないような値。
ファンついてないんだけど大丈夫なんだろうか。