機械学習用計算サーバーの構築

問題発生時に再構築できるよう、備忘録。

ハードウェア構成

自分に必要なスペックは、

  • 並列処理速度
  • 静音性(ベッドの近くに置くため)
  • 安さ(ランニングコストも含む)
  • ほどほどの性能

以上。

調べた結果、GPU性能だけ異常に高い偏った構成のため、BTOは高い。格安のタワーPCにグラボを増設するのが最も安く、また同額程度で自作ができることがわかった。久々に作るのも面白そうだし、構成をこだわれるので、自作にした。

並列処理速度に関しては、GTX 1070・GTX 1080・GTX 1080Tiで迷ったが、なんとなく1080を選択した。SLIはするつもりがないため、安い非対応マザボを選択した。

電源ユニットは600W程度あれば十分なようである。ただ、深層学習は、回し続ける必要があるため電気代が非常にかかるとのことである。計算を回し続けると、月に7000~8000もかかってしまうそうなので、少し高めだったが電力変換効率の高い電源ユニットを選択した。10%の変換効率の違いで700~800円の違いが月に出てくる。結果的に安くなると判断した。

以上、合計13~14万程度。基本的にサーバーとして利用するため、インストール時のディスプレイはテレビを使用。キーボード、マウスは使い回し。

驚いたこと

  • 最近のPCケースは、安いのにしっかりしていて驚いた。付属品もしっかりしている。
  • BIOSでマウスが使える。
  • HDDは遅すぎる。Optane MemoryがUbuntuで活かせそうであれば使いたい。

ソフトウェア構成

  • Ubuntu Server 16.04 LTS
    • Ubuntu MATE Desktop (minimal installation)
      • 通常のUbuntu Desktop環境はGeForceのCUDAドライバとの相性が悪く、VNC接続時に正常に起動してくれないことがわかった。その為、代替として、taskselコマンドでUbuntu MATE Desktopを入れた。やっぱり昔のGNOMEは良い。
    • OpenSSH
      • これは必須
    • vnc4server
      • これも必須
    • CUDA 8.0
      • GPUでの並列演算用ドライバ。GeForceのサイトより。
    • cuDNN
      • 深層学習用ライブラリ。GeForceのサイトより。
    • Anaconda
      • Python環境構築のため。
  • Windows 10 Pro OEM版(グラボ・マザボのファームウェアアップ用)
    • ASUSマザボ用ソフト
    • GTX 1080用ソフト

Windows 10は、なんと1400円程度で手に入った。PlayAsia.comという、ある程度有名で信用できるサイトよりOEM版を購入した。OEM版のため、別のパソコンに移行はできないがマザボを変えない限りは使える。しかし、訳あり商品なのか、既にアクティベーションキーが使用されているとのことでアクティベーションに失敗。そこでマイクロソフトのサポートに電話したところ、諸々の操作の後、アクティベートしてもらえた。これは非正規品だったのか?電話で聞けばよかったが、何とも言っておらず、申し訳ございませんと言っていた。謎である。

インストール手順は次の記事に書くことにする。