Transformer Primeのマルチコアとクロック

ASUS タブレットパソコン Eee Pad TF201 TF201-GD64D

ASUS タブレットパソコン Eee Pad TF201 TF201-GD64D


Tegra 3初物ということで、発売日に購入。とある勉強会でUstream用に購入当日にまさかの実戦投入。勉強会を始めてから2時間程して、電源つないでいるのになぜか電池がきれそうになり、よく見たらちゃんとタブレットとキーボードが接続されていなかった。というか、タブレット側の電池だけで2時間もUstream出来たのが驚き。


4コアということで、コアがどんなクロックで推移するのか気になったので、CPUクロックを3秒ごとにprintfするCプログラムを書いて眺めてみた。そのまとめ。

  • GovernorはInteractive
  • 設定可能なクロックは102MHzから1.4GHz
    • 102 204 370 475 620 760 880 1000 1100 1200 1300 1400
  • 1.2GHzまでしか使わない
    • /system/etc/normalmode.shで
echo 1 > /sys/module/cpu_tegra/parameters/system_mode
echo 1200 > /sys/kernel/tegra_cap/core_cap_level

これが効いているらしく、ログに

V/NvPowerMgr(  416): setPowerState(): scaling, capLevel, capState, userCap, aggressiveness = 1, 1200, 1, 1200000, 29
    • turbomode.shを使うとスペック通りに、1コア時Max 1.4GHz、マルチコア時Max 1.3GHzで動作する
  • アプリケーションによるマルチコア利用
    • ホーム画面のスワイプは2コアを1.2GHzで回す高負荷処理
      • 思ったより重い処理なのでむやみにぶいんぶいんすると電池持ちに影響するかも
    • Grow Ballは4コア全開
    • Rip Tideは3コアしか使わない
      • 通常処理に2コア。水滴などのTegra 3追加効果の処理に1コア。
    • twiccaは更新時に3コアまで全力で使う
    • 他のアプリはほとんど2コアの全力で収まってしまう
    • コンカレントGCに別コアを起こすような挙動は見られない
  • 1.2GHz x 2 -> 760MHz x 2 -> 1.2GHz x 1 -> 600MHz x 1のような推移
    • 負荷に応じてコア数とクロックをうまく調整してくれている
  • sleepで寝ないv8
    • ブラウザでGoogle Newsを開いた状態でsleepすると204, 370, 620をうろうろする
    • すべてのアプリを閉じてホームに戻ってからsleepすると、102MHz
    • PC版Googleホームでも同様にsleepしてもCPUクロックが落ちない。v8が寝ない。
    • PC版Googleホームはsleepしなくても370, 620, 880, 1200をうろうろする
    • PC版iGoogle
    • Mobile版は102MHzに落ち着く。


どうもsleepしても、ブラウザがActive状態だとv8は寝ないようなので、sleepするときはブラウザを閉じてからの方が、電池持ちがよくなりそう。これは他のAndroid端末に共通なのかもしれない。