14,000元の費用でディープラーニングサーバーを自分で構築するにはどうすればいいでしょうか?

14,000元の費用でディープラーニングサーバーを自分で構築するにはどうすればいいでしょうか?

Jeremy Howard の優れた Deep Learning Part 1 コースを修了した後、Amazon Web Services (AWS) の請求書を確認したところ、GPU を実行するためだけに毎月 200 ドル近くを費やしていることがわかりました。これはオンライン コースに支払う金額としては高額に思えましたし、私はすでにコース外でいくつかのデータセットに取り組み始めており、結果が出るのを待ち望んでいました。

皆さんと話し、たくさんのブログ投稿を読んだ後、私はついに自分のディープラーニング サーバーの構成を開始することにしました。今日ではテクノロジーとハードウェアが急速に発展しているため、私が読んだ記事がすぐに古くなってしまうのではないかと心配していますが、以下の要約が皆様のお役に立てば幸いです。

サーバーを構成するための 6 つの手順:

1). コンポーネントを選択する

2.) 組み立て

3). オペレーティングシステムをインストールする

4). ドライバーをインストールする

5). ライブラリをインストールする

6). リモートアクセスを設定する

1. パーツを選択する

私はたくさんのブログを読んで、最終的にどの構成を選択すべきかのアイデアを形成しました。ハードウェアは急速に更新されるため、次世代の登場時にどのモデルのコンポーネントを購入するかという問題は、自分で検討する必要があります。しかし、一般的に言えば、マザーボード、CPU、メモリ(ランダム アクセス メモリ、RAM)、ハード ドライブ(ソリッド ステート ドライブ、SSD)、グラフィック カード(GPU)、CPU ファン、電源、ケースなどのコンポーネントを購入する必要があります。

PS 購入する前に、pcpartpicker.com でリストを作成することを強くお勧めします。このウェブサイトの特徴は、選択したパーツが互いに互換性があるかどうかを知ることができる「互換性チェック」機能を備えていることです。私のリストはここにあります。

部品リスト(原文は米国市場価格、Syncedは2月23日にJD.com/Taobao価格に置き換えました)

  • CPU—Intel i7 7700k (Kabylake) 4.2GHz クアッドコア 2799 元
  • メモリ - Corsair Vengeance LPX 32GB (2 x 16) DDR4–3200 2499 人民元
  • ソリッドステートドライブ - Samsung 850 EVO sata3 500G 1299 元
  • GPU—Zotac GeForce GTX 1080 8GB 4999元
  • マザーボード - MSI Z270-A PRO ATX LGA1151 1299 元
  • CPU ファン - Cooler Master Hyper 212 EVO 82.9 CFM 128 人民元
  • 電源—EVGA SuperNOVA G2 750W ATX 879 人民元
  • ケース - NZXT S340 (ホワイト) ATX ミッドタワーケース 369 元
  • 合計金額:14,271元

私は単一のグラフィック カードでビルドを開始することにしましたが、選択した MSI マザーボードには複数の PCIe レーンがあるため、将来必要に応じて GPU を追加できます。一般的に言えば、たとえレビューがまちまちであっても、ユーザーレビューが最も多いハードウェアを選択します。しかし、レビューはウィジェットの人気度を示しており、ユーザー数が多いほど、ユーザーによる使用ガイドや提案が作成される可能性が高くなります。これにより、次の 2 つの手順で多くの苦労が省けます。

役に立つ記事:

  • 個人用ディープラーニング リグを構築する (http://guanghan.info/blog/en/my-works/building-our-personal-deep-learning-rig-gtx-1080-ubuntu-16-04-cuda-8-0rc-cudnn-7-tensorflowmxnetcaffedarknet/)
  • スターター CUDA ビルドの最適化
  • ディープラーニングの夢のマシンの構築
  • ディープラーニング ハードウェア ガイド (http://timdettmers.com/2015/03/09/deep-learning-hardware-guide/)

2. 組み立て

この部分は非常に興味深いです。ほとんどすべての部品については、関連する説明ビデオをオンラインで見つけることができました。ただし、一部の部品については、同様のモデルのインストールビデオに従う必要がありました。 MSI マザーボード、Cooler Master ファン、NZXT ケースの取扱説明書は非常に優れていますが、まだ他の資料を見つける必要があります。

[[184056]]

[[184057]]

[[184058]]

学んだ教訓

  • 良いドライバーに投資してください。私のドライバーは下手なので、すぐに行き詰まってしまいます。より長いシャフトのドライバーを購入すれば、狭い場所に届き、労力を節約できます。
  • 努力を惜しまないでください - 免責事項: 何かが壊れた場合、私を責めないでください。しかし、少なくとも 2 つのケース (CPU とメモリ) では、コンポーネントのインストール時に十分な注意を払わなかったために多くの時間を無駄にしました。あまり力を入れすぎるとダメなので、部品が簡単に入らない場合は諦めました。メモリに関しては、Amazon でほぼ新しいチップのセットを購入しました。このような場合の解決策は、さらに強く押すことです。
  • BIOS を理解する - BIOS はマザーボードにプリインストールされているソフトウェアであり、マシンの起動時に最初に読み込まれるソフトウェアです。基本的には、ハードウェアを構成し、オペレーティング システムをインストールするコントロール パネルです。 BIOS で「ブート ディスク」(オペレーティング システムが格納されている U ディスクまたはソリッド ステート ドライブ) を見つける方法と、使用するグラフィック カードを選択する方法を学ぶことは非常に重要です。残念ながら、MSI のユーザー マニュアルではこれらの問題についてあまり明確に説明されていませんが、このビデオ (https://www.youtube.com/watch?v=C6mQqlmL5Sc) を見ると理解が深まるでしょう。
  • あなたのモニターは壊れていません。新しいマシンでディスプレイを動作させる方法を理解するのに、しばらく時間がかかりました。以前に聞いた話では、最初に起動したときにはグラフィック ドライバーがインストールされていないため、マザーボード上の特定の場所に HDMI ケーブルを接続する必要があるそうです。そうしましたが、ようやく起動したときにディスプレイに何も表示されませんでした。次に、ケーブルをグラフィック カードに接続してみましたが、これも機能しませんでした。最後に、グラフィック カードを取り外し、ケーブルをマザーボードに再度差し込んで再起動してみました。ようやく何かが見えてきました! これは、MSI のマザーボードが PCIe チャネルで他の外部グラフィック カードを見つけられない場合、デフォルトで統合グラフィック カードを使用することを意味します。初めて起動したときにグラフィック カードをインストールしたため、マザーボードは新しいカードを使用することを選択しました。 Nvidia ドライバーがインストールされていないため、モニターに何も表示されません。

ついに完成しました!

3. オペレーティングシステムをインストールする

ディスプレイが動作すると、次のようなインターフェースが表示されます。これは BIOS です (注: BIOS インターフェイスはマザーボードのブランドによって若干異なる場合があります)。すべてが正常に動作するようにするには、起動優先順位の変更とデフォルトのグラフィック カードの交換という 2 つの変更を行う必要がありました。

MSIマザーボードにプリインストールされたBIOS

私は自分のマシンを主にプログラミングと機械学習に使用することを計画しているので、Ubuntu オペレーティング システムをインストールすることにしました。また、Mac からリモート操作できるようにしたいので、おそらく Windows は必要ありませんが、デュアル ブートは可能です。

UbuntuをインストールするためのUSBドライブを作成する

私は Mac の指示 (https://www.ubuntu.com/download/desktop/create-a-usb-stick-on-macos) に従い、UNetBootin (https://unetbootin.github.io/) というクライアントをダウンロードしました。これですべて処理されます。

UBUNTUを起動する

すべてがうまくいけば、USB ドライブを接続し、再起動し、質問に答えて、Ubuntu の完全に機能するバージョンをインストールし、次のステップに進む準備ができるはずです。しかし、このエラーメッセージが表示されました。

Esc キーを数回押し、次に Delete キーを押し、次に F1、F10、F12、#%^、$\&]&&#^ を押しましたが、何も機能しませんでした。

問題は、MSI マザーボードがすでにデフォルトの「ブート優先順位」を選択していることです。 BIOS に再度入ると (電源投入直後に F11 キーを押す)、BIOS が最初にハードウェア ドライバー (Samsung SSD) を起動するように構成されていることがわかりました。これは空でしたが、オプションが多数ある可能性があります。解決策としては、USB オプションを優先リストの一番上に移動し、再起動します。最後に、非常に使いやすい Ubuntu インストール画面が表示されました。

Ubuntu をインストールして再起動した後、Ubuntu の読み込み画面で停止したままになり、最終的にタイムアウトになったことにがっかりしました。また何があったの?

結局、問題は MSI マザーボードに組み込まれたグラフィック カードにあったことが判明しました (私の GTX 1080 はまだコーヒー テーブルの上に置かれています)。 Ubuntu のグラフィカル ユーザー インターフェイス (GUI) と互換性がありません。これは典型的な鶏が先か卵が先かという問題です。 Ubuntuがなければ、グラフィックカードを使用するために必要なドライバーをダウンロードできませんが、グラフィックカードがなければUbuntuをインストールできません。GRUBの登場です。

(https://help.ubuntu.com/community/Grub2)。

Ubuntu ブート メニュー。コンピュータを起動した後、左の Shift キーを押すと、このメニューに入ることができます。

最終的に、この問題の解決に役立つ非常に優れた記事を 2 つ見つけました (http://askubuntu.com/questions/162075/my-computer-boots-to-a-black-screen-what-options-do-i-have-to-fix-it、http://askubuntu.com/questions/716957/what-do-the-nomodeset-quiet-and-splash-kernel-parameters-mean)。解決策は、起動コマンドに *nomodeset* パラメータを追加することです。これにより、Ubuntu GUI の標準バージョンがインストールされ、続行できるようになりました。

4. ドライバーをインストールする

Nvidia ドライバーは実行が難しいことで有名ですが、これも例外ではありません。他のユーザーの指示に従って、Nvidia の Web サイトにアクセスし、GeForce ドライバーをダウンロードし、Ubuntu GUI を使用してインストールしました。この間違いは私に多大な苦痛を与えました。

  • 互換性のあるNvidiaグラフィックカードを検出できません

これはまた鶏が先か卵が先かという問題です。ドライバーがないと動作しないため、GTX 1080 を再接続しませんでした。再接続すると、MSI マザーボードが再びそれを使用し始め、開始状態に戻ります。解決策は、BIOS に再度入り、グラフィック カードの優先順位を変更することです。新しいグラフィック カードを選択するのではなく、内部グラフィック カードを優先するように設定を更新しました。この方法では、GTX 1080 を再度接続して、Ubuntu に通常どおりログインできます。

  • Xサーバーを実行しているようです

私は、ここの手順 (http://askubuntu.com/questions/149206/how-to-install-nvidia-run) に従ってこの問題を解決しましたが、最初は最初の手順「CTRL+ALT+F1 を押して、資格情報を使用してログイン」を通過できませんでした。それを実行した後、画面が再び空白になり、モニターへの接続が失われました。解決策は、Ubuntu をテキスト モードで起動し、コマンド ラインから手順を完了することです。

より良いアプローチ

すべて(ドライバー、CUDA、ディープラーニング ライブラリなど)が動作していることにようやく安心しました。しかし、いくつかの設定ファイルのせいで、すぐにまた問題が発生してしまいました。

Ask Ubuntu Web サイトで数時間閲覧した後、新しい CUDA 8.0 ツールキットには Nvidia ドライバーがプリインストールされており、CUDA とドライバーを同時にインストールできることに気付きました。

既存の Nvidia ライブラリをクリアし、次のコードを実行したところ、すべて正常に動作しました。詳しい手順はここでご覧いただけます。

  1. wget
  2. http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
  3. sudo dpkg -i cuda-repo-ubuntu1604_8.0.44-1_amd64.deb
  4. sudo apt-getアップデート 
  5. sudo apt-getでcudaをインストール

次に、~/.bash_file に次のコードを追加します。

  1. エクスポート PATH=/usr/ local /cuda-8.0/bin${PATH:+:${PATH}}
  2. LD_LIBRARY_PATH を /usr/ローカル/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}にエクスポートします。
  3. LIBRARY_PATH=/usr/ローカル/cuda-8.0/lib64${LIBRARY_PATH:+:${LIBRARY_PATH}}をエクスポートします。

5. ディープラーニングライブラリをインストールする

必要なディープラーニング ライブラリとそのインストール方法を説明した優れた記事が多数あります。重要な点は、特にインストール方法に関する部分については、これらの指示に盲目的に従うことはできないということです。これらの手順は頻繁に更新されるため、図書館の Web サイトでより良い例を見つけることができます。私がインストールしたツールの一部を以下に示します。

  • CUDA—GPUを使用する並列コンピューティングプラットフォーム
  • cuDNN — ディープラーニングを加速する NVIDIA ライブラリ
  • Anaconda — データ サイエンス向け Python (numpy、scikit、jupyter など)
  • OpenBLAS — 高速線形代数法
  • Tensorflow — Google の機械学習フレームワーク
  • Theano — ディープラーニングフレームワーク
  • Keras — TensorflowやTheanoでの作業を簡素化する別のフレームワーク

この後、すべてが正常に動作していることを確認するためにいくつかのテストを実行し、Jupyter Notebook の実行を開始しました。

6. リモートアクセスを設定する

これもオプションの手順です。ただし、ラップトップからリモートで実行したい場合は、次の方法があります。

Teamviewer は画面共有ソフトウェアです。このソフトウェアをインストールして両方のマシンで実行すると、ラップトップから Ubuntu ホストを制御でき、その逆も同様に制御できます。これにより作業がはるかに便利になりますが、画面共有中にすべてを実行すると、少し遅延が発生し、不格好になります。

SSHとポート転送

SSH 経由で新しいマシンにリモートアクセスし、ラップトップの追加の Tab キーのように操作できるようにしたいと考えています。これを実現するために、Ubuntu に OpenSSH をインストールしました。

  1. sudo apt-get で openssh-server をインストールします
  2. sudo サービス SSH ステータス

その後、外部トラフィックをコンソールに直接転送するように Comcast ルーターを構成しました。 Comcast の指示に従ったところ、驚いたことにうまくいきました。www.canyouseeme.org でポート 22 をチェックしてこれを確認しました。プロセスの一部ではパブリック IP アドレスが必要になる場合があります。これは、次のコマンドを実行して確認できます。

  1. dig +short myip.opendns.com @resolver1.opendns.com

リモートノートブック

もう 1 つの便利な機能は、Jupyter が気に入った場合、ディープラーニング ホストでノートブックを実行し、ラップトップで参照および編集できることです。このトリックに関するチュートリアルがここにいくつかあります (http://www.justinkiggins.com/blog/zero-configuration-remote-jupyter-server/)。以下にコマンドをリストします。

  1. $ラップトップ: ssh -l bfortuner@DEEPLEARNINGIP
  2. $server: jupyter ノートブック--no-browser --port=8888  
  3. $laptop: ssh -NL 8888:localhost:8888 bfortuner@DEEPLEARNINGIP

これで、ノートパソコンのブラウザで http://localhost:8888 にアクセスし、ディープラーニング マシンでノートブックの編集を開始できます。

[この記事は、51CTOコラムニストのMachine Heart、WeChatパブリックアカウント「Machine Heart(id: Almosthuman2014)」からのオリジナル記事です]

この著者の他の記事を読むにはここをクリックしてください

<<:  まだ AI と機械学習を混同していませんか?まず、AIの6つの注目分野を見てみましょう。

>>:  AIの負担を軽減する時が来た。Python AIライブラリ5選のおすすめ

ブログ    

推薦する

SurroundOcc: サラウンド 3D 占有グリッドの最新技術!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

...

...

...

自動運転は道路安全の問題をどのように解決するのでしょうか?

最近、自動運転に関する悪いニュースが数多く報道されていますが、特にアリゾナ州で Uber の自動運転...

AIは数分間の記録に基づいて、人がCOVID-19に感染したかどうかを判断できますか?

今日の若者は、「エモ」という言葉をキャッチフレーズとして使うことに慣れているが、本当の「うつ病」が何...

会話型AIが発展途上国の経済をどう変えるか

テクノロジーは商品の売買方法を変えました。電子商取引の発展により、トレーダーは世界中のほぼどこでも、...

顔認証決済は時代遅れですか?アマゾンはわずか0.3秒で手動支払いをテストした

北京時間9月4日の朝のニュース、ニューヨークポストによると、アマゾンのエンジニアは店内での買い物の精...

アンドリュー・ン氏の新演説:AIは業界の状況を変えており、企業の障壁はアルゴリズムではなくデータである

[[204846]] 1. 人工知能の応用と価値Andrew Ng 氏は、AI は新しい電気であると...

この方程式はバイナリツリーの森ですか?データから直接未知の支配方程式と物理的メカニズムを発見する

研究者たちは、機械学習の手法を使用して、高次元の非線形データから直接最も価値があり重要な内部法則を自...

ライトスピードコンピューティングが画期的な進歩を達成、AIトレーニングコストの問題が解決される可能性

画像出典: Visual China 1956年、アメリカの経済学者によって「人工知能」の概念が提唱...

eBayは機械学習を利用してプロモーションリストを改善

​翻訳者 | ブガッティ校正:孫淑娟オンラインマーケットプレイスの eBay では、「ウォッチリスト...

AIの冬が来ます!ディープラーニングはスケールしません...

著者について: Filip Piekniewski は、コンピューター ビジョンと AI の専門家で...