« ちょっぴり注意・・・? | メイン | Yahoo! JAPAN × Google = ? »

2010年07月20日

GTX 470/480 の低電圧/クロック化、ファンコントロールについて(BIOS書き換え)

Fermi=核融合炉ことGF100コアを、この夏こそ静まらせなければならないのです・・・!
対象カードは Palit Microsystems「NE5TX470F10DA-N0001(GTX470 1280M GDDR5 320B Dual-DVI DMI DP)」。


(最新のGTX 580に関する部分や、BIOSレベルでのファンコントロールの話題はこちらから参照ください


普通の室温時いきなりですが、結論を書いておきますと「こんなスクリーンショットのFermiを作りたい!」という人に捧げる話題です。しかし、推測的な表現が多くなっているのは「誰も試していない内容がほとんどのため」です。

私はプロのライターでも、自作ユーザーでもなく、あくまで一般的なパソコンユーザーです(たぶん・・・)。ですので、その記事の確度というものは一般的なWebサイトに準じるものです。

室温が21度の時かといって、嘘ばかりを記すわけにもいかないですから、私なりに調べて、こうなりましたよ、という結果・考察を記すものです。ざっくばらんに、ぱらぱらっと読んでくださいね。


前回の参考記事:
GeForce GTX 285を低電圧駆動化・ファン回転数を調整する方法(BIOS書き換え)


こちらの話題、どちらもそれなりに好評なのかはわからないですけど、アクセス数がRADEONと同じく多いみたいです(汗笑)。ある意味禁断の領域を調整することから、人と違うことがしたいという方で調べられているのかもしれないですね。あるいはうるさいファンを何とかしたいのか。評価の高い285をさらにエコにしたいのか・・・。


それはさておき、RadeonはHD3000シリーズ以降は一貫して調整方法が変更などなっていないため特には問題ないのですが、GeForce側は今回新たに発表されたFermi・・・GF100と呼ばれる新コアに移行してから、ドライバ周りであったり、BIOS周りもGDDR5の採用などにあわせて、かなりリフレッシュされたみたいです。今日発表された258.96ドライバなどはそのもっともたる例です。

上の記事で紹介したGTX285は従来のコアの改良版といった位置づけだったのですが、今回は新規設計となるため、今までの概念が通用しなくなっている部分があります。それはBIOS周り、書き換えにおいても影響が出てしまっています。


ドスパラさんでGTX470カードがなんと30900円・・・。これはもう、乗り換えちゃってもいいのでは、と思い、先ほどのカードを売りに出してゲットしたのですが・・・やはり熱いのです(汗笑)。

常識を超える熱さ、騒音、・・・それでいて伸びないパフォーマンス。買ってすぐに思ったことは「これは失敗!!」です(^^; まさにFX5800の再来といわれても過言ではないかなと思っちゃいました。


こうなると、余計に「何とかしなくちゃ」と思うに至り、お世話になっているNiBiTorの知られざる領域、「Fermi Clocks / Voltage」テーブルの意味を見つけないと、と考えるに至ります。

海外サイトを探すものの、ほとんど誰もトライされていないのか、有用な情報が見つかりません・・・。うう、これはもうお手上げなのかな、と思いましたけど、まずは見た目簡単なVoltage・・・電圧部分(これが大きいわけですが)からみていくことにしました。


ああ、そうそう。今回はさすがにもう上級者さんしかみられないと思うので(GF100/104のコードネームでぴんとくるとなると、根っからの自作ユーザーさんでしょうしね)、詳細は省略します。途中読んでわからない部分が出た際は、上にあげたGTX285の話題で詳しいことは書いてありますので、一通り目を通してくださいね。


まず、Fermiを操るにあたり、一つ押さえておきたい部分があります。それは「クロック(またはパワー)ゲーティング」と呼ばれるらしい概念。これは従来からも 2D/3D/Extra などで負荷に応じて挙動を調整していたわけですが、今回はその幅がとても広く、各レンジにおいてさらに細かくクロックや電圧の変動を許可できるという、大がかりな変更が施されている模様です。

なぜこのような事態になったかとなると・・・それはもう、推して知るべしですよね。Fermiコアは元々HPC分野で利用される、高度な計算を要求される分野向けに開発されたチップであり、コンシューマーグラフィックスのことは後から考えられたらしいですから。そのため、演算パワーを追求し、フルパワーで動かすとかなりの消費電力となってしまって、一般家庭向けではなくなってしまっていた、と。

そのため急遽?になるのかはいざ知らず、細かく電圧/クロックを制御することで極力電力増を避けよう、という考えが出てきたのでしょうね。それが、Fermi Voltage欄になります。

では、このあたりで例の解説ページをあげておきましょうか。こちらからどうぞ。


らべお手製 BIOSをエディットしよう~Fermi編

らべお手製 カスタマイズ済み オリジナルGTX 470 BIOS(Parit社向け)


電圧調整はエディットの図中で8~14になります。これはSetting 0: ~ 3: まで選べるようになっており、このあたりは今までのコアと変わらない部分となりますが・・・どうにも、NiBiTor側の不具合なのか、はてはParit社のBIOS設定上なのかは不明ですが、見た限り「0から3にかけて負荷がかかっていくのだろう」と思ってパラメータを打ち込むも、そのまま書き換えただけではちゃんと動いてくれないのです。

結論を書くと「Setting 2:」は現状、正しく動いてくれないみたいです。こちらのボックスに入れたパラメータは、どうにも読み込まれないのです。Setting 0: , 1: , 3:の3つは問題ありません。つまり、この3つを使用すればいいというわけです。


値として0、1が低負荷時、2、3が高負荷時といった分かれ方をしているみたいですが、初期値は0.8875V。これでも今までのGeForceと比べたらダントツに低い電圧です。それですのになぜアイドルが下がらないのか・・・となれば、やはりトランジスタ数でしょうね。これがネックになっているようにしか思いません。

ただ、パラメータ自体をみると・・・おお~。なんと下限は0.6125Vという、かなりの値まで下げられるではありませんか。ここまで下げて初めてCypressと張り合えるというものです。迷わず下限まで下げちゃいました(汗笑)。動かなくなるのを考慮して、ですけどね。そして・・・あっさり起動(ぱちぱちぱち)。やるじゃないですか!

続いてSetting 1: も結局は低負荷なので同じ0.6125Vを入力。ちなみに左側がそのSetting内での最低電圧値、右側が上限電圧値となっているみたいです。ここも、不安定になる要素を排除したいのであれば、電圧固定で割り振るべきでしょうね。

細かい部分はおそらくドライバが制御するのだと思いますけど、逆に言いますとこれだけハードとソフトが有機的に結びつく仕組みを作ってあるわけです。これはすごいことです。


Setting 2: はお話ししたとおり、現状では正しく動作しないので適当に入れるだけで問題ないのです(後述)。要は3:の部分となり、こちらが高負荷時の電圧となります。ここをあまりにあげすぎると・・・ボード焼損の危険性があるので、くれぐれもご注意を。さすがにFermiでオーバークロックを熱心にしたい方はいないでしょうけど・・・。

ちなみに、一番上に1つ離れたものが「ボード全体で許可する上限電圧値」となります。これはコア・メモリ双方を面倒みた上で、どの程度のマージンを許容するか、といった部分なのでしょうか。リファレンスは上限電圧値の+0.0125Vで設定されていましたので、私もそれに倣って設定しました。

基本のクロック周波数の場合、上限電圧値は0.9375V程度から動かせるようでした。ただ、ソフトの負荷などによって変わる部分があり、FF14ベンチはそれで動かせたものの、お休みの日にオンラインゲームで丸1日動かして計測したところ、安定して動く値は0.9625V~0.975Vあたりでした。

しかしながら、0.975Vにするとどうにも、急激に温度上昇率が上がるのです。つまり、脂ののるボルテージがそのあたりからなのでしょうね。Fermiが大飯食らいといわれるのは、どうにもコア電圧による部分が大きそうです。

私は至高のパフォーマンスを追求するわけではないので、そのFF14ベンチとオンラインゲーム(PSUですが)での負荷具合で、0.9625Vが一番無難に、そして安定して動かせる値であると見いだしました。ゆえにボードのリミット値は0.975Vに決まります。これなら万が一、の時にそのブーストがかけられる電圧、普段はその1段手前。まさに理想的です。


そして、それらを決めた後下にある「Perfmode / Voltage:」ですが、これはその負荷の度合いに応じてどのセッティングパラメータを適用するか、といったものです。つまりFermiは4段階の負荷に追従するチップになっているわけですが、その4段階のうちどの値を適用するか、という部分になります。

ここで先ほど書いた後述の意味がわかると思います。つまり、Setting 2:を使うと正しく動かない、ことから、ここでは0、1、3のいずれかから選べばいいというものです。

そうなってくると察しのいい方は「0と1って同じ値だから、前みたく0と3だけにしたらいいじゃん」とお思いかもしれませんけど、どうにも2値だけの設定にすると一度エディットした後そのボルテージが一切編集不可能になったり、読み込み直したときに正しく表示されなかったりなど、細かい部分で不具合があるみたいです。

ですので、律儀に全パラメータをセットして、高負荷時は3、そしてそれ以外を0と1で割り振るように・・・としたわけです。


・・・ふう。長いですね@@ 自分でも書いていてどうなってきているのか把握できなくなりそうです(汗笑)。しかし、あともう一辛抱です。残りはお待ちかねのクロック周波数の変更です。


クロックはさかのぼって2~7になります。絶対、最初にみたら「なにこれ・・・」で唖然とすると思われるテーブルエディタ。これらの数字がいったい何を意味するのか・・・。私も、すべては把握できていません。きっと、いろんなソフトなどに対応させるための、個別のパラメータなどを多数セットしているのかもしれません。

ただ、いろいろ値を打ち替えて調べていった結果、実質的に自分で操作する場合、赤枠で囲ってある部分のみが反映されるみたいです。項目は多数あれど、3の部分がシェーダークロック、5の部分がメモリクロックとなっています。

コアクロックはシェーダークロックの1/2の比率で生成されるようになっており、自分でのエディットは行えない?みたいです。つまりシェーダーを基準に選定しようということですね。

また、3-7-12-15とあるこの意味ですが、言い換えるならば先ほどのボルテージにある「Setting 0:-1:-2:-3:」と思ってください。なぜこのような意味不明なテーブルになっているのかはいざ知らず、上から順に低負荷~高負荷へと遷移しているととらえられればOKかと。

3-7-12-15の数値は、もう一つの有用なソフト、NVIDIA Inspectorで把握できると思います。このソフトを取り寄せるとわかるのですが、オーバークロックの項目内に「Performance Level [3] - ( P0 )」と最初に記されます。プルダウンを選ぶと「[2] - P3」「[1] - P8」「[0] - P12」というつながりがあり、なるほど、そういうことかと。

つまり、エディタ側も0-3-8-12と記せばわかりやすかったものの、なぜかその値が3-7-12-15となってしまっているわけで、仕様面でなにか食い違いがあったのかもしれませんね。このあたりはいずれ修正されるのでしょう。

この4行に分かれるパラメータですが、上から順に低負荷~高負荷となりますので、ご自身で「このくらいがいいかも~」という値を、適宜打ち込む、ないし、「完全固定にしたい!」頑固な方なら(汗笑)、すべて同じ値を、お好みのままで。


私のパラメータをみればわかるとおり、これも大胆にカットしていっています。ただ、今回はメモリーコントローラーユニット(MCU)側の挙動が変わっており、完全に周波数を下げきった場合、MCUにかなりの負荷がかかる仕組みになっているみたい。つまり、従来とは異なりクロックを下げすぎると、全体のバランスも変わってくるということです。

100720_3.jpgその様子はこの画面でもわかるとおり、たかだかWebページの閲覧でも、さすがに下げすぎた50MHz程度のコア/メモリクロックにはかなりの負荷となってしまい、高速にスクロールをさせたり、動画や画像がたくさん張ってあるページを閲覧すると、すぐにクロックが上昇します。その様子が、階段状になって現れている=高負荷>低負荷>見方によってまた高負荷へとチェンジ。

ここがGT200以前と大きく異なる部分となっていて、つまり闇雲に値を上げたり下げたりするだけでは、そのレンジを超える負荷がユニットにかかった場合・・・すぐにフルパワーの稼働へ=P0にステイトが切り替わる、というものです。消費電力が高めになるのも、このあたりに一因ありそうです。

ざっと読んでいくと、何かをイメージできませんか? ・・・そう、これはもうCPUそのものなのです。CPUがたどった道を、GPUが歩みつつあるということですね。ここが、NVIDIAさんが最近しきりに提唱する「GPUコンピューティング」の末端として、現れているのではないかなって感じた一コマです。


こうなってきますと、ベンチマークの値も本当の意味で、ドライバ1本の仕様でかなり変わってしまう恐れもあります。また、私のこのパラメーターでは、想定した値が出ない恐れもあります(シーンの中で負荷が下がった場合、省電力が作用してクロックが落ちる=ベンチスコアも低下する)。

ゆえ、このBIOSはあくまで日常での常用プロファイルとして使用してください。くれぐれもベンチマーカーはまねしないように@@ こんなふうに、今回のパラメーターの決定にはかなりの時間を費やしました。ゲーム上で24時間程度、Webサイト閲覧でも6時間程度・・・煮詰めての値です。


こだわりのポイントは、P12のアイドル時は、もうとにかくカットの方向で、極小の消費電力=30W未満を実現、2枚目の写真が物語っているでしょう。この回転数で、この温度のFermiはそうそうないのでは。室温20度のお部屋にて、扇風機なども当てていない状態でそれなのです。

そしてP8がいわゆるWeb閲覧時で、弱い負荷が断続的にかかり続けた場合、このクロックである程度まともな閲覧が可能になるというもの。一般的なサイト閲覧時は、このレンジで収まります。50Wもいかないでしょう。

P3は2D時で相応の負荷がかかった場合や、3Dゲームで同じ場所から全く動かないような状況の際は、このパラメータに収束できる場合があります。私が遊んでいるPSU、ファンタシースターユニバース、ですが、マイルームといってお部屋でチャットなりができる場所があるのですけど、そちらにキャラを放置することも多く(汗笑)。そうなると、常にフルパワーでは無駄が大きいのですよね。

そんなときにこのパラメータがうまく当てはまってくれて・・・。ほとんど発熱は増加しません。いい値にまとめられたかなと思っています。NVIDIA社のリファレンス値をまねてみたものですけどね。ちょこっとばかりメモリクロックをあげて、来客などにメモリが割かれる際、耐えられるようにしています。

P0はもう、MAX値ですから・・・。何もいいようがありません(汗笑)。強いていえば285と比べると計算部分が増加しているため、画質向上を狙うオプションなどが有効かもしれません。演算速度自体は大差ないみたいなので・・・。


あれ、ここまで解説しておいてファンの回転数は?~?とお思いでしょうが、残念ながら現状のNiBiTorではファン回転数に対するパラメーターのセッティング部分がありません。唯一Hexviewという、BIOSそのままを覗けるものはあるものの・・・私はそんなことまでわかりません@@ まさにプログラマーさんやハード開発者さんたちの領域なのです。ましてや、読み切れたとしてもバグなどが残っていたらお手上げですしね。

ですので、先ほどのNVIDIA InspectorにてShow Overclockingボタンを押して現れる、ファン回転数調整スライダーを使用するわけですね。また、パラメータをご自身でチューニングする場合、そちらにあるリアルタイムクロックセットは助かるはずです。ただ、あまりにも不適当な値にした場合、ハングアップする恐れがあります・・・。

それましたが、ファン回転数をAutoから自分で手動でその都度切り替えています。逆に、Fermiほどになればある程度自分でセットできる方が好ましいこともあるため、普段は30%、ゲーム時に40%固定にしています。これでアイドル時は夏の暑いお部屋で(室温26度)45度、ゲーム時のピークで70度、といった感じです(PCBの温度)。

ゲームが終わった後は適当に70%とかにして強制冷却! 1分もしたら50度まで下がっているので(^^; その後30%に戻す・・・といった感じです。ちなみにPSUではこのオリジナルチューンの設定ですと、マイルーム在室時はP3のパラメータで動いており、PCBの温度は56度と優秀です。使いこなせば、十分扱えるボードかなと感じました。

なお、RADEONの時とお約束になることですが、くれぐれもBIOSファイルは「エディット済みのものを再使用=再編集」だけはなさらないように。エディタ側などでバグが残っていると思われる現状では、再編集はオリジナルファイルとの乖離を招きかねませんので、必ず編集時はオリジナルから面倒でも開き直しましょうね。


∮ ∮ ∮

おまけなのです

100720_4.jpgちなみに470はどうやらDeep Color出力にも対応するのか、東芝レグザ Z8000の信号情報では12bitとして表示されていました。実際、色に少し深みが出たようで、対応モニタをお持ちの方は見比べてみるといいのかも('-'*) このテレビの場合、色を好みに作り替えられるので、RADEONよりの発色にしちゃっています。こうなるとより魅力的になるんですよね。

これまた3時間くらいかかる内容になってしまいました。大変長くなりましたが、この記事がFermi使用者の手助けになれば幸いです。


(2011/5/13 20:02 追記分)

実際に低電圧化を施した際の消費電力を載せたページを紹介しておきますね。こちらをどうぞ。

GTX480を低電圧化した時の消費電力

投稿者 :lavendy  |  2010年07月20日 23:00

トラックバック

このエントリーのトラックバックURL:
http://lavendy.net/mt/mt-tb.cgi/263

コメント

初めまして。
自分の購入したBTOマシンのグラボが丁度Palitの470だったので、この記事がとても参考になりました。
同じモデルということでBIOSイメージもそのまま適用させて頂き、64bitOSだったものでnvflashが実行できず四苦八苦はしたのですが、無事に運用出来ています。
その上で感触として教えていただきたいのですが、例えばFF14をプレイする際だけAfterburnerでCoreクロックを上げるような運用を考えているのですが、最大8時間程度連続稼動させるとしたらどの程度のクロックが安全圏と思われますか。
先程FF14ベンチは700MHzで実行してみて完走はできたのですが。。

お手数ですがアドバイスいただけると助かります。
よろしくお願いします。

投稿者 :470ユーザー  |  2010年08月10日

お世話になります('-'*)

なんと、BTOで本カードが搭載されていたのですか@@ すごいのです。昔とはえらく時代が変わっちゃったのかなとか思ったり思わなかったり。それはさておいて、FF14ですかあ・・・。

ベンチマークをみていても、シーンの切り替わりの部分などではコマ落ちが発生していますので(メモリ周りの特性のような気もしますけど)、クロックを高めに維持させたいお気持ちもよくわかります。

8時間程度ですか・・・。何ともいえないところですね。700MHzはすばらしいの一言ですが(!)、逆に言えば20%程度はマージンが残っていそうな感じですよね。そうなってくると、一般論でよく言われるのが「常用のOCマージンは10~15%程度」という説。

今回瞬間最大で700MHzまでいけたとするなら18%程度の上昇率ですよね。それを常用したい・・・となるとさすがにコア電圧を上げることになるので、ボードにかかる負荷も相当なものです。

温度センサーで気になるのはコア部分と思われますが、私が気にするのはPCBの温度です。こちらが実質的なボード本体にかかっている熱になるので、こちらが80度とか90度とかになっていると大変です@@

オーバークロック時の理想は(ほとんどしませんので感覚ですが)PCB側を75~80度程度に収めることができれば御の字だと思います(コアは85~90度前後?)。ですので、クロックとしては650~70MHzあたりでしょうか。これ以上は冷却周りをしっかりさせるなりしないと、寿命が縮まってしまうかも・・・。


少しでもパフォーマンスを上げたいと思うのでしたら年末に出るGTX485や490(460のデュアル構成?)あたりが狙い目になるのかもしれませんね。ソフト側がSLIに対応してくれば470をもう1枚追加するのもありと思います('-')/


<余談ですが、nvFlashは手前に掲載したMS-DOSのUSBメモリを作成すれば起動できますよ('-'*) ただ、BIOSでブートデバイスの優先順位をUSBメモリに変更しないとならないですけどね。。。起動順位の変更ができなければ場違いですいません@@>

投稿者 :らべ  |  2010年08月10日

アドバイスありがとうございます。
なるほど。余力と「PCB側を75~80度程度」というのが目安になる訳ですね。650~700MHzの間で無理のないところから色々試してみたいと思います。
ただ、昨日始まったβ3ではそれまでの30FPS制限が無くなって恐らく上限120FPSとなったせいで、グラボが性能を限界まで発揮してしまってGPU利用率99%張り付き、GPU温度は90℃を超えてFurmarkの耐久テストのようになっている状況です(笑)。
慌てて垂直同期をオンにしてコアクロックも定格に戻しようやく落ち着いているところで、OCを試せるようになるのは製品版が出てからかなというところです。
まあ新しく買ったところですしまずは470で一番バランスの良いところを目指して調整していきたいなと思います。

なお、nvflashはおっしゃる通りUSBのブートでできるのは分かっていたのですが、適当なものを持っていなかったので週末にアキバで購入し、事無きを得ました。

また余談ですが、このマシンですが「ドスパラのFF14推奨モデル」というやつでして、基本構成で470、オプションで480が選べる、という初心者向きとしては異例の(笑)構成です。

では今後とも宜しくお願いします。

投稿者 :470ユーザー  |  2010年08月12日

コメントはご自由に




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)