1つのPCにGeForceとQuadro の2枚を挿して10bit出力を実現した話。

ELSA NVIDIA Quadro P400 グラフィックスボード VD6272 EQP400-2GER

異なる2枚のグラボを1台で使う

普通、グラフィックボードを使うときは1枚か、ブルジョワな人は2枚をSLIで繋ぐのが一般的ですが、異なる2枚のグラフィックボードを1台のPCに挿したらちゃんと動くの?しかもGeForceとQuadro で…ということで人柱覚悟で挑戦してみました。

設定にいろいろ苦戦しましたがキチンとどちらも認識され、使える状態になったのでやったことなどを共有しておきます。

注意:すべての環境で上手くいくとは限らないので各自自己責任のもとで行って下さい。

QuadroとGeForceを共存させたい!

始めに言っておくと、6面とか8面モニターにしたいとかいう理由でなければ異なるグラボを2つ使う必要はありません。グラフィックの性能は片方しか使われないので。2枚挿して性能が上がるのは同一ボードを2枚挿してSLI(CrossFire)で繋いだときだけです。

今回なぜQuadro とGeForceの異種混合にしたかったかというと、10bitカラー出力をしたかったから。

これまではGeForce GTX780を使っていて、ちょっと世代が古いとはいえCUDAなど演算能力には不足していなかったのですが、GeForceの弱点は各色8bitまでしか出せないこと。これは最新ブラッグシップのGTX1080でも同じです。

普通は8bit(RGBで24bit=約1680万色)あれば十分なのですが、現在使用しているBenQのSW2700PTは10bit入力に対応しているんです。モニターの階調性能をフルに使うためには10bit出力したい!ということで、10bit出力に対応しているQuadro を使ってみたかったというのが理由です。

RGBで30bit、約10億色の桁違いの階調になります。(人間の目が24bitと30bitを見分けられるかというと別の話で30bit出力するにはアプリケーション側の対応も必要。Photoshopとかね)

Quadroだけだとコスパが悪すぎる…

じゃぁ最初からQuadroだけ使えば良いじゃんというところですが、演算能力の高いQuadroってめちゃ高いんですよ。

単純比較はできないのですが、GTX780のCUDAコア数(一般に多いほど計算能力が高い)は2304個。Quadroで同じ個数のCUDAコア数を持っているカードは現行品だとQuadro K5200でお値段26万円ほど。

GTX780はK5200と同じKepler世代のカード(というかコアチップは一緒なのでは?)で現在中古で1.5万~2万程度。その差10倍以上ですw

同じスペックでもQuadroとGeForceでは得意とするアプリケーションが異なっていたりと単純に並べることはできないのですが、個人的にグラボの演算能力を使いたいのはAdobe PremiereのMercury Palyback Engine(MPE)で、こいつはCUDAのコア数が多い方が有利なんですよね(同じ世代なら)。

よし、いいとこ取りをしよう

ということで、GTX780のCUDA演算能力を生かしつつ、モニターに10bit出力させたい!ということで併用を考えたのでした。

Quadroシリーズなら安いモデルでも10bit出力に対応しているので今回選んだのは先日発売したばかりのQuadro P400。「10bit出力さえできりゃー良いんですよ。CUDA使った演算は安いGTX780でやるから」という安直な作戦です。

P400でもGTX780の中古価格位するけどね。。でもDisplayPort1.4対応で5K, 6Kも行けるなかなかステキなカードです。

ドライバインストールの順番が大事かも

今回の私の環境はこんな感じです。

始めはメインのSW2700PT 1台をGTX780側に繋いだまま、P400をPCI Expressの2番に挿して起動。すんなり起動してよしよしと思ったものの、P400側に繋ぐと画像が出力されず…

以下私の試行錯誤の歴史です(あまり参考にならないかも)

*ここからしばらくダラダラと試行錯誤の話が続くので手っ取り早く結論知りたい方は読み飛ばして下さいw

出たばかりだしドライバが古いからだよねと思い、ここでNVIDIAのダウンロードページからP400用の最新版の377.11(ODE)をダウンロード&インストール。

この時は知らなかったのだけどQuadro 用(ドライバ自体はGeForceと共通っぽい)で検索する際にODEとQNFのどちらかを選択する必要があって、詳しくはよく分からんけどODEが安定版、QNFが最新機能版といった感じ。

ODEとQNF

無事にドライバインストールが終わって、再起動をかける(モニターはGTX側)とBIOS起動画面とWindowsの起動画面のクルクルは写るのだけど、その後突然画面が写らなくなる問題発生。

あれあれ?と思ってP400側に繋ぎ直すとログイン画面が出てきて無事にログイン可能も。今度はGTX780側が使えなくなってしまった。。

デバイスマネージャでもどちらのカードも認識されているし、NVIDIAコントロールパネルでも2つのカードが認識されてます。

NVIDIAコントロールパネル

なんでだ…

またもドライバを疑い、NVIDIA GeForce Experienceで見てみるともっと新しいドライバがあるじゃない(これがQNF版)。ここでホントに最新となる381.65(QNF)をインストール。

これでOKか!と思い再起動をかけるもののさっきと同じ現象。OS起動中に表示先がGTX780→P400に切り替わる感じ。

なんでだ…

BIOS起動画面はPCI Expressの1番に挿したカードから出力されるはずだろうと、GTX780とP400のポートを入れ替えてP400をPCI Expressの1番に。

もくろみ通り、BIOS画面はP400から出力されるものの、今度はOS起動中にGTX780に切り替わり、P400が使用不可。さっきと逆の現象。なんなら、GTX780のポートを一度抜いて、もういちど挿してみると画面真っ黒で強制リセット待ったなしの状況。

なんでだ…

いろいろドライバ設定いじってたら(たぶん関係ないから省略)いよいよWindows起動画面以降、どっちのモニターも真っ黒という絶望的な状況に陥り、セーフモードで起動、一旦ドライバ削除して、381.65(最新版)を再インストールという不毛な作業もしましたw

もうムリ。

ゼロからドライバインストールしても無理だし、やっぱりダメか。。と諦めて最初の状態(GTX780をPCI Expressの1番)にしてP400を外すことに。

元の環境に戻って、おれはやっぱり8bitの世界で生きていくのだ!と思い直していたところ、ふとNVIDIA GeForce Experienceに目をやると、さっきインストールしたはずの「381.65(最新版)」が利用可能です と出ている。え?

どういうこと?と思い、アップデートしたら普通にアップロードされて381.65(最新版)にアプデ完了。なんで?さっきアップデートしたばかりなのに。

もしや今までのドライバってQuadro にしか適用されてなかったってこと?GeForceは無視されてたわけ?(普通はNVIDIAのドライバはQuadro 、GeForce供用らしい)

ということでこの状態でP400挿せば最新ドライバで認識されるのでは?と思い諦めて箱にしまいかけたP400をPCI Expressの2番ポートに接続して起動。

GTX780側にメインモニター1台繋いで(P400には繋がず)起動したところ表示がP400に切り替わること無く、ログイン後まで表示できた!行けたかも!

ということで今度は

メインモニターをP400、サブをGTX780に繋いで起動。BIOS起動画面~WindowsのクルクルまではGTX780側から、その後P400側からログインパスワード画面が出力されました。ログイン後はGTX780、P400のどちらからも映像が出力されていて、デュアルディスプレイでも問題ない感じ!

やっとできた!長かった。。

Quadro とGeForceの2枚挿しはGeForceからやるのが良い?

ということで、ちゃんとした原因は不明ですが、上手くいった流れを書いてみました。ほぼ発売日購入のP400を使ったため単純にドライバが安定してなかったとかいう問題もあるかもしれませんが、上手くいかない場合は一旦GeForceだけの状態で最新ドライバを入れて、その後Quadro を挿すという流れにすると良さそうです。

一番最初に最新版にアップデートしておけばこの数時間を無駄にしなくて済んだかも知れないw

もちろんこの方法はあくまで私の方法であって、Quadro とGeForceの2枚挿しなんて公式ではサポートしてくれないと思うので、次にやるときに上手くいく保証はありませんのであしからず。

Quadro とGeForceを使い分ける設定

NVIDIAコントロールパネルの中の「3D設定の管理」の項目にある「CUDA – GPU」と「OpenGL レンダリング GPU」の項目で使用するグラボを選択できます。

NVIDIAコントロールパネル

私の場合CUDAはGTX780を選択できたのですが、OpenGLレンダリングはGTX780を選択できず、演算力の低いP400しか選べず。。

NVIDIAコントロールパネル

まぁCUDAだけでもGTX780を使えれば現状困らないのですが、OpenGL系の処理をするアプリを使いたい人は注意しましょう。

OpenGLの処理はGTXが使えない場合も…

OpenGLレンダリングの処理を選べない原因はたぶん対応するOpenGLのバージョンの違いによるものでは?と思います。

いろいろネットを漁ってみると、いくつか事例が出てきて

  • GTX780(OpenGL4.3) + P400(OpenGL4.5) → 選べない(私)
  • GTX TITAN(OpenGL4.4) + 4000(OpenGL4.3) → 選べる(参考1
  • GTX980(OpenGL4.4) + K620(OpenGL4.4) → 選べる(参考2
  • GTX970(OpenGL4.4) + K2200(OpenGL4.4) → 選べる(参考3
  • GTX1080(OpenGL4.5) + K2200(OpenGL4.4) → 選べない(参考3

といった感じ。OpenGLのバージョンが同じカード同士は「OpenGL レンダリング GPU」を選べますが、異なると選べない可能性高そう。ただ、GTX TITAN(OpenGL4.4) + Quadro4000(OpenGL4.3) が共存できてるので、4.4と4.3は共存できるけど、4.5とはできないと考えることも出来る。

4.5同士は分からんw これはGTX1000番台導入の機運が高まってきたな!

追記:OpenGL 4.5同士でもダメっぽい…

その後気になりすぎて、GTX1070を入手してGTX780と交換してみましたが、「OpenGL レンダリング GPU」の項目は残念ながらP400しか選べませんでしたw残念。

NVIDIAコントロールパネル

NVIDIAコントロールパネル

なお、GTX1070の交換は単純に挿し変えるだけでGeForce、Quadro の両方を認識しました。上でトラブったのはドライバのバージョンのせいなのかもしれない。

とりあえずCUDAは使える

私の設定だと、Photoshop、LightroomのGPUはP400だけど、PremiereのMercury Palyback Engine(MPE)はちゃんとGTX780を選択できるようになり、モニター出力も10bitを確認しました。

モニター出力の項目はNVIDIAコントロールパネルの「解像度の変更」から対応するモニターを選択して「出力の色の深度」を10bpcに設定しておくこと。Photoshop側の設定も忘れずに。Lightroomは設定不要で10bit対応になります。

NVIDIAコントロールパネル

まとめ

ということで、なんかまとまりのない記事で超ニッチな内容になってしまいましたw

写真やっててGPUのパワーがソコソコ必要だったりゲームもしたい人で10bit出力も欲しい人は結構いそうな気もするのでだれかの役に立てれば幸いです。

10bit出力する場合は、10bit入力に対応したモニターが無いとムリなのでそこはお間違いなく。今回使用してるBenQ SW2700PTのレビュー記事は本家にあるので良かったらみてみてね。

スポンサーリンク