まーにゃ@エンタメ系火事場エンジニアの日々

数々の「火だるまプロジェクト」を安請け合いし何度でも復活する 「自称・不死身のエンジニア」の物欲まみれの日々をつづる

【PC編】「2021-05-22★APPLEに脱帽@M1+iOS」と「絶妙なタスク制御」と私

アップルシリコン(M1チップ)の記事で興味深い内容が
GIGAZINEで紹介されてました。
M1チップのCPUコアは、
高効率コア(IceStorm)*4
高性能コア(FireStorm)*4
が入ってますが、
ユーザに「遅い!」と思わせないために
どのようにタスクをCPUに割り振ればよいか?
ひとひねり、考えて作られているのがわかりました。
この発想はなかったなぁ。。
iPhoneで長年蓄積してきたOSのノウハウ+最新鋭のM1チップ 
ソフトとハード両方つくってるからできた「絶妙なタスク制御」の技ですね。。
よくできました−−って感じですね。。脱帽です。。
がんばれ、、マイクロソフト。がんばれ、INTEL。。
2021_0522_APPLE1.png
コンピューターのパフォーマンスについて考える際、一定の時間でどれほどのタスクを処理できるのかを示す
スループット」をパフォーマンスと同一視する傾向は一般的です。スループットは測定するのが簡単であり、
スループットを向上させればパフォーマンスも向上する」と考える人も多いとのこと。
しかし、実際にコンピューターを扱うユーザーが知覚するのはスループットではなく、
タスクの処理を行ってから反応が返ってくるまでの時間である「レイテンシ」です。
そのため、レイテンシを犠牲にしてスループットを最大化したとしても、ユーザーはなかなかコンピューターの
反応が返ってこないために「処理が遅い」と感じてしまいます。
QoSとは、パケットやタスクに優先順位を付けることで重要なものを優先的に処理し、
サービスの可用性を適切に管理する技術のことです。macOS向けアプリの開発者は、
最も優先順位が低い「background」から最も優先順位が高い「userInteractive」まで
5段階のQoSレベルをアプリに割り当てることが可能であり、macOSはこのQoSレベルに従ってタスクを処理します。

ところが、同じmacOSであっても、IntelのプロセッサとM1チップではタスク処理の方法に違いがあると
オークリー氏は指摘しています。実際にオークリー氏が10GBのテストファイルを圧縮するというタスクを
Intelのプロセッサを搭載したmacOSバイスで実施したところ、全てのQoSレベルで
全コアを使って処理が実行されました。

一方、高性能コア「Firestorm」と消費電力が少ない高効率コア「Icestorm」が各4コアずつ、
計8コアで構成されているM1チップでテストを実施したところ、QoSレベルが「background」に設定されていた場合は
高効率コアでのみタスクが実行されたそうです。この場合、高性能コアが完全に待機状態であっても
処理に使用されませんでした。さらに、QoSレベルが「background」より上位に設定されていた場合は
高性能コアを含めた8つのコア全てで処理が実行され、高効率コアのみで処理が行われた場合より
高速で処理が完了したとのこと。
M1チップにおける2種類のコアは、高効率コアが主にmacOSと多くのバックグラウンドタスクを
実行するために存在し、高性能コアはユーザーがタスクを実行する際に備えて待機していると言えます。
つまり、バックグラウンドタスクの実行中でもユーザータスクを高性能コアで処理できるため、
ユーザーが感じるレイテンシが軽減されて「処理が速い」と感じるとのこと。

オークリー氏は、「OSの問題に直面してインターフェースの速度が低下することは、
ユーザーにとても悪い印象を与えます」と指摘。Intelプロセッサを搭載するMac
バックグラウンドタスクで問題に直面した場合、ユーザープロセスにも悪影響が及ぶ可能性がありますが、
M1チップ搭載のMacでバックグラウンドタスクの問題が発生しても、
それは高性能コアには影響を及ぼさないため、ユーザープロセスは影響を受けません。

海外メディアのArs Technicaは、「AppleのM1チップが非常に高速だと感じるのは、
4つのコアが他のコアよりも遅いからではありません。それは、タスクの待ち時間を短縮するために
最大スループットを犠牲にするという、意欲的なOSによるものです」と述べました。
では・・また・・:_;)/