先日ハードオフでQuadro K2000を買って動作確認しました。
で問題なく動きましたが、ディープラーニングの環境構築をしたくてTensorflowを入れて以下の記事を参考にGPUが認識されているか確認しましたが、リストの中にGPUの情報が表示されませんでした。
原因はQuadro K2000のCuda Capabilityが3.0だからみたいです。
各モデルのCapabilityについてはこちらを参考にしました。
最新のTensorflowを動かすには最低3.5必要なのでそのままでは使えないです。
じゃあPytorchはどうかなと思ったのですが、Pytorchもインポートエラーにはなりませんが、Capabilityが3.5必要なのでやはり使えません。
それで以下の記事を参考にしてソースからインストールしようとしたのですが、ビルドにクソ時間がかかるし途中でビルドエラーになって対処がめんどくさいので断念しました。
個人的にはPytorchだけは使えるようにしたかったのでなんとかしようと思いました。
というわけでCapabilityが3.5以上のグラボを物色するためにまた名古屋の中古PCショップを回りました。
正直ディープラーニング用のGPUなら新品買えよって思うかもしれませんが、そもそも使うPCはそれぞれの部品に1万円も使ってないのに、グラボだけバカ高いのは世代のバランス悪すぎるし何より気持ち悪いので、地道に中古品を探すことにしました。
ひたすら名古屋市内を行ったり来たり
まず、おなじみ大須のパウに行ってきましたがタイミング悪く低スペックのグラボしか置いてませんでした。
前に行ったときは確かQuadroも何度か見かけてました。(その時はQuadro知らなくて眼中になかった…)
手始めに名古屋栄伏見店
でその後Quadroを買った伏見のハードオフにGeForceを売ってたのを思い出しました。
値段しか見てなくて番号まで覚えてなかったので仕方なくバスで伏見のハードオフに向かいました。
で、GeForceを置いてあった棚を確認したところ、なんとGTX 550 Ti
でしたw。
Quadro K2000よりも古いモデルなのに倍の価格で販売しているのはどうかと思います。やっぱり価格設定おかしすぎる。
当たり前ですが、Capabilityは2.1で圧倒的に低かったので論外です。
他のGPUは以前買ったQuadro K2000が2個在庫であったぐらいです。
お次は覚王山店
転んでもただでは起きない僕は地下鉄で覚王山のハードオフを目指しました。他のリサイクルショップだとグラボどころかPCパーツが置いてある確率が低いのでそこも探しているとキリがないのでハードオフ縛りでなるべく効率よく回ることにしました。
覚王山のハードオフを確認したところ、グラボは一つも置いてませんでした。
代わりにジャンクコーナーに大量のマザボがありました。割ときれいなものもあったので、この店舗はマザボ単体=ジャンクという発想なんですかね。
でもここでわかったのは店舗によってはネット販売してなくても掘り出し物がある可能性もあるということです。
悪あがきの千代田店
真っ昼間で外はめっちゃあついですが、守山区まで踏み出すことにしました。流石に地下鉄はないので市バスに乗って千代田店へ。バス停のすぐ近くなので帰りも安心です。
肝心の店内ですが、楽器や音響周りが充実してましたが、PC関連はイマイチでした。
でグラボもそれらしきもの見つけましたが、よくわからないメーカーだしNVIDIAのGPUですらなさそうでした。
それにしても守山区ぐらいになると車の無料貸出があるんですね。さすが守山区のハードオフ。(ディスってないよ)
血迷って大須へ
ハードオフを3店舗回りましたが、もうこの時点でハードオフには期待しておらずしかも長距離移動で結構時間がかかったので、回れてもあと1店舗行くか大須の他の店舗を回るかで悩みました。
ざっと調べてみると知らないだけで中古パーツ売ってる大須のPCショップが何店舗も見つかったので再び大須に戻りました。
まずは赤門通のグッドウィル。グラボは中古で売ってましたが、やはりゲーミングPCをメインで扱うだけあってGeForceが多めでした。しかも割とスペック高めで安くても1万超えでした。
続いて同じく赤門通のPCコンフル。今までちらっと店先を眺めたことはありましたが店舗が狭く、品数そんなにない印象でした。
ただ中古を専門に扱っているっぽいし、一度見てみる価値はあるだろうと思い物色してみました。
これが当たりでしたよ!!
ガラスケースにある僅かなPCパーツの中に1万円切ってるグラボが2つありました。一つはQuadro K2200、もう一つはQuadro P400。
はい、まさかのQuadroが2種類在庫にありました。狭い店舗だと思ってましたが、穴場でしたね。
でこの2つの肝心なCapabilityですが、K2200は5.0、P400は6.1でした。
K2200はK2000の上位互換とも言えるぐらい見た目は全く同じでした。
P400はK2000よりもコンパクトな見た目だけど値段が高い(K2200が7700円でP400が8800円)のでどっちにするか迷いました。
迷った結果Capabilityも高くて発売時期が新しいP400を買うことにしました。
長い目で見たときにCapability高いほうが長くつかえるかなと思ったのと、何より見た目が結構きれいだったんですよね。
ただ、K2200はK2000と同様に4GBに対してP400はメモリーが2GBなので重めの学習でのメモリーエラーが心配でした(個人の遊び程度なのでそんなに学習させることあるかわかりませんがw)
何がともあれ補助電源を使わずにディープラーニングに使えそうなグラボを今度こそ手に入れることができてよかったです。
そして何気にPCコンフルも大須の店舗なので、大須の店舗で売ってたパーツだけでPCを組むことができました!
動作確認
というわけで早速持ち帰って搭載しました。K2000も大概ですが、もっとスッキリしましたね。
ちなみに前回上げ忘れましたが、K2000のときはこんな感じです。アングル違うのは勘弁してほしいですが、ファンの部分が明らかに小さく収まってますね。
ドライバーについてはもうすでにあたっていたので、前回同様glmark-es2でベンチマークを取ってみました(相変わらずglmark2の方はエラーが出ました)
結果はこちら。
======================================================= glmark2 2021.02 ======================================================= OpenGL Information GL_VENDOR: NVIDIA Corporation GL_RENDERER: Quadro P400/PCIe/SSE2 GL_VERSION: OpenGL ES 3.2 NVIDIA 470.57.02 ======================================================= [build] use-vbo=false: FPS: 4409 FrameTime: 0.227 ms [build] use-vbo=true: FPS: 5599 FrameTime: 0.179 ms [texture] texture-filter=nearest: FPS: 4631 FrameTime: 0.216 ms [texture] texture-filter=linear: FPS: 4527 FrameTime: 0.221 ms [texture] texture-filter=mipmap: FPS: 4870 FrameTime: 0.205 ms [shading] shading=gouraud: FPS: 4376 FrameTime: 0.229 ms [shading] shading=blinn-phong-inf: FPS: 4302 FrameTime: 0.232 ms [shading] shading=phong: FPS: 4183 FrameTime: 0.239 ms [shading] shading=cel: FPS: 4430 FrameTime: 0.226 ms [bump] bump-render=high-poly: FPS: 3206 FrameTime: 0.312 ms [bump] bump-render=normals: FPS: 5674 FrameTime: 0.176 ms [bump] bump-render=height: FPS: 5541 FrameTime: 0.180 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 3285 FrameTime: 0.304 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 1807 FrameTime: 0.553 ms [pulsar] light=false:quads=5:texture=false: FPS: 5238 FrameTime: 0.191 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 1596 FrameTime: 0.627 ms [desktop] effect=shadow:windows=4: FPS: 2720 FrameTime: 0.368 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 929 FrameTime: 1.076 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 1072 FrameTime: 0.933 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1156 FrameTime: 0.865 ms [ideas] speed=duration: FPS: 4560 FrameTime: 0.219 ms [jellyfish] <default>: FPS: 2821 FrameTime: 0.354 ms [terrain] <default>: FPS: 299 FrameTime: 3.344 ms [shadow] <default>: FPS: 3464 FrameTime: 0.289 ms [refract] <default>: FPS: 706 FrameTime: 1.416 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 5144 FrameTime: 0.194 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 4573 FrameTime: 0.219 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 4955 FrameTime: 0.202 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 4663 FrameTime: 0.214 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 4262 FrameTime: 0.235 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 4756 FrameTime: 0.210 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 4788 FrameTime: 0.209 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 4388 FrameTime: 0.228 ms ======================================================= glmark2 Score: 3725 =======================================================
小さいから性能出ないのではと侮っていましたが、結構上がってますね。
そういえばK2000のときよりもなんとなく画質が良くなってる気がしますね。
ディープラーニングのライブラリをインストール
そして、最後にTensorflowとPyTorchがpipでインストールしてGPU認識するか確認しました。
結果はどちらも問題なく認識しました!
これでエラーになってたらCudaのセットアップからし直すことになってましたが、その心配はいらなかったです。
ひとまずこれで自作PCの構成は落ち着いたので学生時代にやってた実験を改めてやってみようと思います。