Python自体はM系CPUに対応しています。相性が悪いどころか性能も圧倒的に高いです。
ただ、ライブラリや外部連携アプリケーションがM系CPUにまだ対応していない場合、RosettaというIntel CPUのエミュレーションシステムが間に入ります。CPUそのものをエミュレートして何事もないように動かしてくれるというのはAppleのお家芸の中でも特にすごい技術なんですが、どうしても動作は遅くなります。また、トリッキーな処理をしているライブラリの場合、完全にエミュレーションしきれない場合があるため、正常に動作しないことがあるのです。
とはいえMacのM系CPUの処理性能の高さと費用対効果の高さは圧倒的なもので、評価も高く、ライブラリもアプリケーションもすごい勢いで対応が進んでいます。そのうち古いライブラリやアプリケーションを無理やり動かすなど妙な使い方をしない限り、何の疑問も問題もなく使えるようになると思いますよ。
昨今の Python はグルー言語(cなどで書かれたライブラリを繋ぐ役割)の側面が強くなっています。
python で機械学習などやる場合、ライブラリの中身は殆ど c 実装だったりします。この場合は M1 と Intel 系とでバイナリが別になるのでややこしめの問題が発生します。
とはいえ M1/M2 の人口はどんどん増えており、サポートも充実してきているので2023年中には遜色なく使えるようになるでしょう。 動いて当たり前ではなく、 OSS コントリビュータに感謝し、問題があれば分析、報告する事で協力していきましょう。
■macOS 11の仕様により実行優先順位が低い?
そういう話は聞いたことがないのですが、macOS 11ではシェルスクリプトなどのプロセスの実行優先度が低く設定(高性能コアではなく、低消費電力コアで実行)されていたので、macOS 11で使ったときには、そういう感想(遅い→相性が悪い)を抱く人も出てくるかもしれません。
# macOS 12以降ではこれが改められています。自分がいろいろベンチマークをとってバグレポートして要望しまくりましたので。バグレポートに「君たちの最新のハードウェアでは、10年前のロートルMacBook Airより遅い処理があるんだけど?」と書いてグラフとプログラムを添付したら対処されました。
■デフォルトでインストールされているpythonのバージョンの問題?
macOSにはPython 2.xがデフォルトでインストールされてきたため、作業を行う前にpythonのバージョンを確認し、3.xバージョンのpythonをインストールし、pythonのバージョンを切り替えられるコマンドをインストールする作業が必要です。けっこう面倒でもあります。
ただし、このあたりの話はIntel MacでもM1(Apple Silicon)Macでも同じ状況であるため、M1だからとくに「相性が悪い」という話でもありません。どちらでも平等に苦労します。
0 コメント:
コメントを投稿