ラップトップには通常最大で4つのコアがあり、おそらくデュアルコアがより一般的です。最近、クアッドコアからデュアルコアに切り替えましたが、CPUを集中的に使用するタスクであっても、クアッドコアの使用例が限られていることを確認できます。
一方、携帯電話では、クアッドコア、ヘキサコア、オクタコアが一般的です。どうして?どのタスクがそれらを利用できますか?
big.LITTLEが答えの一部になる可能性があることを理解しています。つまり、非常に多くのコアの主な利点は、すべてを同時に使用できることではなく、現在のワークロードに適した消費電力のコアを使用することです。ただし、たとえば、Snapdragon 625には8つのCortex-A53コアがあり、big.LITTLEの場合はそうではありません。
たぶん、ARMアーキテクチャには、ワットあたりの最適なパフォーマンスという点が低いかもしれません。つまり、ワットあたりの最適なパフォーマンスに合わせてシングルコアを調整すると、IntelよりもARMのパフォーマンスが低下します。そのため、パフォーマンスを提供するためにより多くのコアが使用されます。これは単なる仮説です。
しかし、この場合でも、携帯電話の8つのコアなど、どのワークロードが効率的に使用できるかはわかりません。ラップトップでは、プロジェクトの完全な(非増分)コンパイルのようなものがいくつか想像できます。しかし、電話で?
- ゲームはパフォーマンスを重視する場合がありますが、通常はCPUではなくGPUのパフォーマンスが必要です。
- 理論的には、複数のコアにより、インストール時またはアップグレード時のAndroid Lollipop / Marshmallow AOTコンパイルを高速化できます(つまり、「アプリ3/121の最適化」フェーズ)。ただし、これで複数のコアを利用できるかどうかはわかりません。コードを覚えている限り、一度にコンパイルされるアプリは1つだけですが、コンパイルプロセス自体に並列性がある可能性があります。
- また、Android 7以降では、コンパイル時に複数のコアを利用できます。しかし、アイドル状態で充電中にコンパイルされると報告されているため、その利点はかなり小さいようです。少なくとも1晩電話を充電する場合は、そのようなシナリオで30分または2時間かかるかどうかは本当に気にしません。