がんばるほどに実を結ぶ青春を。

SHiNKAこと@shinka_cbの技術ネタとか備忘録。

M1 Max (GPU 32コア) な MacBook Pro 14-inchの性能雑感

超絶久々にブログ更新。っておもったら前回が2014年7月21日の記事なので、ちょうど丸々8年ぶりの2022年7月21日のブログ記事の更新である。

はじめに

去年の暮れにM1 Max (GPU 32コア)なMacBook Pro 14-inchを使い始めて、それからだいぶ時間はたってしまっているが性能面で同一SoCを載せたMacBook Pro 16-inchとどのぐらい性能差があるのか気になったのでまとめる

M1 Max (GPU 32コア)を載せたMacBook Pro 16-inchについては、以下の記事がとても参考になる:

tlkh.dev

上記で語られていることを簡単にまとめる:

  • 高出力モード (High Power Mode) では SoC の Package Power の最大値が 60 W 前後に収束する(ピークで73Wほど電力消費されているスクリーンショットが記事中にある)
    • CPU は最大 40 W前後、GPU は最大 50〜60 W前後電力を消費する
  • ResNet50 の訓練フェーズで Batch Size 128 時で 140 Image/sec 前後の機械学習性能
  • GPUにおける行列積 (GEMM) 演算性能は最大 8 TFLOPS 前後
手元の MacBook Pro 14-inch で上記記事で使用したベンチマークを回したときの雑感:
  • MacBook Pro 14-inchには高出力モードが存在しないが、省電力モードではない通常時で SoC の Package Power の最大値は 45 W 程度に収束する(ヒートシンクが冷えていて負荷をかけ始めた直後で 75 W 程度のピーク消費電力があるようである)
  • このことから、ヒートシンクが熱くなってない時は 16-inch と同様のピーク性能が出るが、ある程度ヒートシンクが熱くなってくると 14-inch は 45 Wの電力消費に収束することにより、主に GPU 性能面で 16-inch 比で性能が出しきれない局面がある
  • ResNet50 の訓練フェーズで Batch Size 128 時で 120 Image/sec 前後の機械学習性能 (16-inch 比で 86 % 程度)
  • GPUにおける行列積 (GEMM) 演算性能は最大 8 TFLOPS 出る場合もあるが(ヒートシンクが冷えていてピーク電力消費が問題ない時)、ヒートシンクが熱くなってくると 6 TFLOPS 弱まで演算性能が落ちる(GPUクロックが 1200 MHz 前後から 900 MHz 前後まで低下するのでクロック低下分がそのまま演算性能に反映されている(下図))
    • 補足すると、下図のグラフは小さな行列(グラフの左側)から大きな行列(グラフの右側)の順で行列積演算の性能測定を行った結果であるが、グラフの右側に行くほど時間経過によりヒートシンクが熱くなりピーク性能が出なくなり演算性能が低下している
    • 上記記事に 16-inch で同様のベンチマークを回したグラフが掲載されているので比べてみると良いかもしれません
      GPU の GEMM 性能(M1 Max GPU 32C, MacBook Pro 14-inch)
M1 Max (GPU 32コア) が載った MacBook Pro 14-inch と 16-inch の比較まとめ:
  • CPU 性能はおそらくピーク性能、高負荷時の持続性能も同等だと思われる
  • GPU 性能はピーク性能は同等であるが、高負荷時の持続性能は 14-inch は 16-inch 比で 75 % 〜 85 %程度になると思われる
    • 16-inch 比で 75 % まで低下する場合としては、上記の行列積演算の時のようにメモリアクセスが極端に少なく GPU の ALU に全力で負荷が掛かるような極めて限定された場合だと思われるので、通常のクリエイティブアプリの GPU への負荷のかけ方であれば 16-inch 比で 80 % 前後の性能と見ておけば良さそうである(検証したわけではないので憶測)
その他感想
  • https://github.com/tlkh/asitop が SoC の電力消費の分析にとても便利
  • 4 ch な Unified Memory は割と電力消費が激しい
  • M1 Max に負荷をかけると M1 の高効率で全然熱くないみたいな話はどこに行ってしまったんだというレベルで瞬く間にアッツアツになるし、冷却ファンの音もそれなりに発生する

OS X環境のDNSリゾルバのキャッシュフラッシュ方法(2014年度版)

Leopard時代の頃から、OS X環境におけるOSのDNSリゾルバのキャッシュのフラッシュと言えば

dnscacheutil -fluschcache

と、dnscacheutilコマンドだけでキャッシュのフラッシュができたのですが、最近のMavericksなどの環境ではこれでは通用しないようです。ちょっと調べてみたら、ここにまとめられていました。

  • OS X 10.9 (Mavericks)
    • dscacheutil -flushcache;sudo killall -HUP mDNSResponder
  • OS X 10.7 (Lion) / 10.8 (Mountain Lion)
    • sudo killall -HUP mDNSResponder
  • Mac OS X 10.5 (Leopard) / 10.6 (Snow Leopard)
    • dscacheutil -flushcache

OS Xのバージョンで同じことをするのに頻繁にコマンドが変わるのは困ったものですね。