M1世代の最強マシン、それはMac mini
実際にAppleScriptを組んでさまざまな処理をM1 Mac miniで行って、たまーに他のマシンでの実行結果を調べたりするのですが、処理内容によってはM1世代ではMac miniが最強のマシンだと感じています。
M1 x2 x2 x2 = M1 Ultra
ムービーの書き出しとか、YouTuber御用達の各種ベンチマークプログラムとか、そういうもの「以外」の処理で、実はMac miniはラインナップ中で最速のマシンです。
M1というSoCには、M1 Pro、M1 Max、M1 Ultraという上位SoCがありますが、上位SoCの上位であるポイントは、
・M1 SoCを複数貼り合わせたような構造(M1x2=M1 Pro、M1 Pro x2 =M1 Max、M1 Max x2 = M1 Ultra)
・M1 SoCを複数貼り合わせた結果、CPUコア、GPUコア、メディアエンジン、搭載RAMが増える
です。そして、大量のメディアエンジンやGPUコアでもって、マルチメディア系の処理を高速に行うという構成になっています。
では、マルチメディア系以外の処理とか、もっと小さいサイズのデータの処理というのは、M1系の上位SoCで処理するとどんなものでしょう?
選択肢1:M1と同じ
選択肢2:M1よりも高速
選択肢3:M1よりも遅い
「選択肢2」を選んだ人が大部分だと思います。でも、それは実際にプログラムを組んで動かして試したことがない人の回答です。
答えは、「選択肢3」。小さいデータが相手で、並列処理が介在する要素がない処理だと、上位SoCよりもM1のほうが高速であることがわかっています。
日常的な処理だと、マジ最強なMac mini
8K、4K、フルHDなどのサイズの画像のすべての画素が白いかどうかをチェックするAppleScriptの処理を試してみました。結果は、M1 Mac miniの圧勝。
しかも、Mac miniはM1 Maxを積んだMacBook Pro 14インチの2倍速く、M1 Maxを積んだMacBook Pro 16インチの6倍高速です(実測値)。
対M1 UltraでもM1がトリプルスコアで勝利します。
もうちょっと違う処理で試してみましょう。与えた配列の順列組み合わせ計算を行うプログラムです。
{"A", "T", "G", "C"}
という4つの要素を持つ配列を与えると、
--> {"ATGC", "ATCG", "AGTC", "AGCT", "ACTG", "ACGT", "TAGC", "TACG", "TGAC", "TGCA", "TCAG", "TCGA", "GATC", "GACT", "GTAC", "GTCA", "GCAT", "GCTA", "CATG", "CAGT", "CTAG", "CTGA", "CGAT", "CGTA"}
という4x3x2x1=24通りのデータを計算して返す処理です。
4要素=4桁ぐらいだと瞬時に処理が終わりますが、9要素=9桁ぐらいまでデータを増やしてあげると、そこそこ処理に時間がかかります。しかも、1つのプロセスで完結する必要があり、並列処理で手分けをしにくい内容です。
こちらは、前の例ほど差はつきませんでしたが、M1 Mac miniが速いであろうことは予想がついていました。
Apple Siliconでは、上位SoCと下位SoCで得意な処理、不得意な処理がパッチワークのように存在しているように感じています。なんでも上位SoCが速いかといえばそうでもなく、そうはいっても下位SoCが全勝するかといわれると、そうとも言い難いところがあります。ムービー書き出しなどの用途は、上位SoCのほうが高速です。
とはいえ、日常的なデータ処理では、M1世代ではM1を採用したMac miniが、価格性能比でいって最強でしょう。
多くのメディアが一切報じていませんが、最下位SoCがシリーズ中で最強です。とはいえ、RAM 8GBの構成はすぐに処理速度が頭打ちになってしまうため、RAM 16GBの組み合わせ一択。
M2とか今後登場するM3、M4でもこの傾向が見られるのか、実際にベンチマークを行って試してみたいところです。