06月27日
macでハイパースレッドをON/OFFする方法と確認方法
macでインテルのハイパースレッドの利用を停止する方法をご紹介しています。
IntelのCPUを搭載したMacBook/Air/Proは、ハイパースレッドが有効になっています。
macに搭載されるIntelCPUは、2つ以上のコアがあります。
コア=物理的なCPUの数です。
Intelのハイパースレッド(HT)技術は、1つのコアで仮想的なCPUコアを増やしてくれる技術です。
CPUコアは様々な演算をする機能が備わっています。通常フルに使っていないので、リソースを分けて使えるようにしたのがハイパースレッド(HT)です。
映像系の重たい処理などは、リソースをフルに使っている状態なので、
ハイパースレッドをOFFにした方が処理が早く終わることがあります。
IntelのCPUを搭載したMacBook/Air/Proは、ハイパースレッドが有効になっています。
macに搭載されるIntelCPUは、2つ以上のコアがあります。
コア=物理的なCPUの数です。
Intelのハイパースレッド(HT)技術は、1つのコアで仮想的なCPUコアを増やしてくれる技術です。
インテル ハイパースレッディング・テクノロジー (インテル HT テクノロジー) は 1 つのコアで複数のスレッドを同時に実行することにより、プロセッサーのリソースをより効率的に使用します。また、プロセッサーのスループットを高め、マルチスレッド・ソフトウェアの全体的なパフォーマンスを改善します。
インテル ハイパースレッディング・テクノロジー
CPUコアは様々な演算をする機能が備わっています。通常フルに使っていないので、リソースを分けて使えるようにしたのがハイパースレッド(HT)です。
映像系の重たい処理などは、リソースをフルに使っている状態なので、
ハイパースレッドをOFFにした方が処理が早く終わることがあります。
macでハイパースレッドをON/OFFする方法
ここでは、Intel製CPU搭載Macで、macOS Sierraをご利用の方を対象としています。
(検証したmacosがSierraという理由だけです。
未検証ですが、El Capitan、Yosemite、Mavericks、Moutain Linonなどでも使える方法だと思います。)
ハイパースレッドをON/OFFするには、Xcodeのパフォーマンス測定・検証ツール Instrumentsで設定できます。
この方法には、以下2つのデメリットがあります。
- Xcodeをインストールする必要があります。通常4GB以上のストレージを消費します。
App StoreからXcodeをインストールすることができます。 - ハイパースレッドOFFの状態は、スリープからの復帰、リブートでクリアされます。
例えば、macを再起動するとハイパースレッドOFFから規定のONの状態になります。
それでは、ハイパースレッドをONからOFFにしてみます。
- Instruments.appを起動します。
ターミナルから以下コマンドを実行してください。
$ open /Applications/Xcode.app/Contents/Applications/Instruments.app
Xcodeから立ち上げる方法もあります。
Xcodeメニュー > Open Developer Tool > Instruments
でInstrumentsを起動できます。 - ハイパースレッドをOFFにします。
Instrumentsメニュー > Preferences...を選択します。
CPUsタブを開きます。
Hardware Multi-Threading のチェックがONになっていますか?
OFFになっている場合、ハイパースレッドはOFFの状態になっています。
チェックがついている場合、ONの状態です。チェックを外してください。
管理者パスワードが求められます。
Hadware Multi-ThreadingがOFFになると、
Active processor coresの最大値が4から2に変わったことがわかります。
(MacBook/Air/Pro13インチの場合)
MacBook Pro 15インチの場合は、最大8から4に変化します。
再起動の必要はありません。チェックをON/OFFしたタイミングで設定が切り替わります。
ffmpeg( -vcodec libx264 )で負荷をかけながら変化を見てみました。
CPUの数が多いMid2015で確認したスクリーンショットです。
8CPUを4CPUに変更し、4CPUのみ使われることがわかります。
ちなみに、ffmpegの処理時間は、ハイパースレッドをOFFにした方が速いです。
ハイパースレッド:ON | real 0m36.204s user 4m19.861s sys 0m1.598s |
---|---|
ハイパースレッド:OFF | real 0m43.373s user 2m40.776s sys 0m1.315s |
macbook ハイパースレッドがON/OFFなのかを確認する方法
物理的なコア数、論理的なコア数、アクティブなコア数からハイパースレッドのON/OFF状態を判断することができます。
物理的なコア数、論理的なコア数、アクティブなコア数は、sysctlコマンドを使うと得られます。
$ sysctl -a | egrep -e "hw.activecpu*|hw.logicalcpu*|hw.physicalcpu*"
hw.activecpu: 4
hw.logicalcpu_max: 4
hw.logicalcpu: 4
hw.physicalcpu_max: 2
hw.physicalcpu: 2
hw.activecpu | 現在アクティブなCPUコア数を意味します。 |
---|---|
hw.logicalcpu_max | CPUの論理最大コア数を意味します。 |
hw.logicalcpu | 現在macosが認識しているコア数です |
hw.physicalcpu_max | CPUの物理最大コア数です。 |
hw.physicalcpu | 現在macosが認識している物理的コア数です |
ハイパースレッドをON/OFFすると変化する項目は、hw.activecpu、hw.logicalcpuです。
ハイパースレッドがOFFの状態では、Late2012は以下のような結果になります。
$ sysctl -a | egrep -e "hw.activecpu*|hw.logicalcpu*|hw.physicalcpu*"
hw.activecpu: 2
hw.logicalcpu_max: 4
hw.logicalcpu: 2
hw.physicalcpu_max: 2
hw.physicalcpu: 2
見方は色々あるかもしれませんが少ない項目で確認できるのは、以下数値を確認する方法です。
ハイパースレッドOFF:hw.logicalcpu_maxと、hw.logicalcpuが違う場合
ハイパースレッドON:hw.logicalcpu_maxと、hw.logicalcpuが同一の場合
コメントシステムを利用したくない方は お問い合わせ からお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。