GADGET FACTORY 雑記帳

iPhone アプリ / Flash コンテンツ /Adobe AIR などを開発していて気づいたことや備忘録、TIPS、HACKなど

MacBook PRO 15やはりGPUに問題がありそうです

先日より、我が家の MacBook Pro 15(Early 2011)が見舞われた画面が乱れ、ハングアップする問題。

調べて行くうちに、やはり、ディスクリート GPUである、AMD Radeon HD 6750M に原因があるっぽい。

とりあえず、現在は Radeon HD 6750M を使わせない形で利用することに。

その原因調査の方法と、現在の対応について、まとめてみます。


GPU切替用ソフト「gfxCardStatus」の利用

まずは、本当にディスクリートGPUを利用している時だけに発生するのかを調べるために、勝手にGPUが切り替わらないようにしないといけません。

Mac OSX のシステム環境設定からも、ある程度はGPUの利用について、コントロールできるそうです。
[システム環境設定]>[省エネルギー]で最上段に表示されている項目を変更することでできます。
Intel 搭載 Mac コンピュータの統合ビデオについて - Apple サポート (日本)

私のマシンには、[グラフィックス]という項目があり、選択肢として[バッテリー寿命優先]か、[パフォーマンス優先]かを選択できます。
MacBook Pro (15-inch, Late 2008)、MacBook Pro (17-inch, Early 2009)、MacBook Pro (15-inch, Mid 2009)、および MacBook Pro (17-inch, Mid 2009):グラフィックスパフォーマンスの調整方法 - Apple サポート (日本)
[バッテリー寿命優先]にすれば、統合 GPUが利用され、[パフォーマンス優先]にすれば、ディスクリートGPUが利用されるそうです。

でも、本来なら、私のマシンは Early 2011 モデルなので、こちらの設定が表示されるはずなのですが、どうもこの時点からして、動作的に怪しい感じがしてしまいます。
MacBook Pro でグラフィックスのパフォーマンスを設定する - Apple サポート (日本)
もしかすると、OSX のバージョンの違いによるものかもしれませんが・・・

そう考えると、ある程度動作実績のあるGPU切替ツールを利用する方が確実かと思い、色々と調べてみたとろろ、「gfxCardStatus」というツールが、GPUの利用切替に使われている実績が高そう。
gfxCardStatus by cody krieger

早速、サイトからダウンロードして利用を開始。

設定すると、以降起動時にステータスバー上にショートカットアイコンが表示され、いつでもGPUの切替をワンタッチで行えます。

我が家の MacBook Pro 15(Early 2011)の場合、

  • 「integrated Only」にすると、「Intel HD Graphics 3000」がGPU欄に表示
  • 「discrete Only」にすると、「AMD Radeon HD 6750M」がGPU欄に表示

されていました。

ただし、使用するGPUの切替ができると行っても、Thunder Bolt で外部ディスプレイと接続している場合は、GPUは自動的にディスクリートGPUを使う設定になってしまい、切替ができません。

どうやら、我が家の MacBook PRO 15 が外部ディスプレイを利用する際には、必ずディスクリートGPUの方を利用するため、ツールを使っても切替が出来ないようです。

発生条件の特定を開始

まずは、発生する条件の特定を行ってみました。
その結果、以下のような感じであることが判明しました。

  • Intel HD Graphics 3000」を利用している時は、落ちる事がないようだ
  • AMD Radeon HD 6750M」を利用していても、落ちない事もあるが、重い処理を行うと、突然画像が乱れ、マシン自体が落ちることがある。

最初、外部ディスプレイをつないだ状態で、マシンを立ち上げても、問題なく起動して、しばらくは利用できていたりします。
先の調査で、外部ディスプレイは必ず「AMD Radeon HD 6750M」を使わないと利用できないことが分かったのですが、それまでは外部ディスプレイに接続して、起動させることもでき、昨日 Time Machine でバックアップを取った際にも、外部ディスプレイを接続した状態で行っておりました。

すると、問題は、「AMD Radeon HD 6750M」で「重い処理」を行う時ということになります。

例えば、ここ何回かのマシンが落ちた頻度で考えると、やはり私がメインで行っている作業の Flash Professional によるアプリの開発時が一番高い感じ。

そこで、外部ディスプレイを接続し、「AMD Radeon HD 6750M」を利用している状態で、Flash でアプリの動作テストを MacBook PRO 本体で行ったところ、ものの5分ほとで、マシンが落ちてしまいました。
場合によっては、Flash Professional を起動した後、プロジェクトのファイルを開いた瞬間に、落ちる事もありました。

ならばと、外部ディスプレイを外し、「Intel HD Graphics 3000」を利用している状態で、Flash Professional でアプリの開発を行ってみたところ、昨晩PM10時ぐらいから、本日のAM3時ぐらいまで作業しても、一切落ちることはありませんでした。

さらに条件の特定をするために、CPU/GPUの温度が分かるツールを利用

この「重い処理」というのが、どういう状態なのかをもう少し知りたいと思って、何か良い方法はないかと考えました。

ただ、実際のGPUの使用率がどれぐらいかなどを調べても、作業を行っている時に、それがどれぐらいの負荷がかかるのかは作業の内容によって変わります。
使用率が分かったところで、落ちる/落ちないの予測は難しい。

それならば、温度が一番調べやすいかなぁということに思い当たりました。

GPUの処理が重くなると、当然GPUの発熱量も増えるので、温度をモニターしておけば、落ちるタイミングの予想が取りやすいかなぁと。

そこで、CPUやGPUの温度が分かるツールを調べたところ、「MagicanLite」というツールを発見。

MagicanLite

MagicanLite

  • Magican Software Ltd.
  • ユーティリティ
  • 無料

AppStore からダウンロードして、実行すると、画面に小さな状態を表示するウィンドウが表示されます。
そのウィンドウにカーソルを合わせると少し大きめのウィンドウが表示されます。
そのウィンドウの上部右からに番目のアイコンをクリックすると、ステータスバーに表示されます。
ステータスバーに移動した状態で、その情報右端にある小さなアイコンをクリックすると、CPUとGPUの現在の温度をモニターすることができるようになります。

この状態で、ディスクリートGPUを利用し、本体がハングアップする条件温度を調べてみたところ、

  • CPU 55度
  • GPU 38度

で、ハングアップが発生しました。
この辺りが、ハングアップする負荷ということになる感じでしょうか。

ただ、温度を調べてはみたものの、常にその状態をモニターするのは精神衛生上あまり良くないし、集中力がそがれることによる作業効率の低下もあり得ます。

とりあえず、「Intel HD Graphics 3000」を利用している限りは、ハングアップが発生していないので、Flash Professional での開発を行う場合は、「AMD Radeon HD 6750M」を使う外部ディスプレイの利用をあきらめて、「Intel HD Graphics 3000」で、MacBook PRO 本体のディスプレイを使って行うしかなさそうです。

GPUにあまり負荷のかからない Web ブラウジングや、テキストの作成などの場合は、外部ディスプレイを利用するという形での使い分けを行うしかない感じです。

Apple は無償交換を

当分の間というか、Apple が無償交換を実施してくれるまでは、この体制でMacBookを利用するしかない感じです。

一応修理ということも考えてみましたが、ロジックボードの交換が4万円ほどするらしいことと、修理をしても再発する可能性があるらしいので、そこにお金を何度も突っ込む気にはなれませんので。

世界でも同じ原因に見舞われている人が多くいるらしく、中にはオーブンで焼いたら(焼きリンゴ)直ったというようなとんでもない情報まで出てます。
ディスプレイ表示が乱れる。(MacBo… - Apple コミュニティ

今はさすがに怖くて、そこまではやれませんが、状況が改善されなかったり、さらに悪化するようなことがあると、やりたくなるかもしれませんね。

いっそ、新しい MacBook PRO に買い替えるという方法もあるかもしれませんが、こちらもさすがに金額的に厳しいものが・・・

それに、現在の MacBook PRO 15 は全てRetinaディスプレイ搭載で、SSD搭載機。

Retinaディスプレイは、iPhone/iPadアプリを開発するには、役に立ちそうですが、現在の画面解像度(1680x1050)に比べると、画面に表示できる情報量が少なくなる(2880x1800 = 1440x900相当の情報量)のも気になります。
さらに怖いのは、SSDだと万一故障した時の交換代金が高くつきそうで、イマイチ買い替えに進めない理由の1つでもあります。