システム準備と基本設定
高性能な AI 開発環境を構築するため、まずベースとなる OS とネットワーク構成を整えます。ここではUbuntuサーバー版を採用し、安定した運用を目指します。
OS インストール
対象マシンの BIOS/UEFI から USB ブート可能なメディアを作成し、Ubuntu の ISO イメージをフラッシュします。インストールプロセスでは、ストレージ領域の適切なパーティション設計を選択してください。
ネットワーク設定
有線接続を使用する場合、ルーターの設定やスイッチングハブの設定が適切に行われていることを確認します。静的 IP アドレスの割り当てが必要なケースでは、netplan や interface ファイルを手動編集して設定を固定します。
パッケージ管理ミラーの選定
高速なダウンロードを実現するため、地域に近い国内ミラーサイトを設定します。これにより、パケッジ更新時の待ち時間を大幅に短縮できます。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i s|http://archive.ubuntu.com/ubuntu|http://mirrors.tuna.tsinghua.edu.cn/ubuntu|g /etc/apt/sources.list
sudo apt-get update
sudo apt-get upgrade
基本ツールとエディタの導入
開発効率を向上させるためのシステムユーティリティとコードエディタを追加インストールします。
SSH セッション管理
リモートアクセスおよびファイル転送(SFTP)のため OpenSSH サーバーを有効化します。
sudo apt-get install openssh-server
sudo service ssh start
systemctl status ssh
バージョン管理システム
コード管理には Git を使用し、依存関係を含むリポジトリ(YouCompleteMe など)をフルクローンします。
git clone --recursive git://github.com/Valloric/YouCompleteMe.git
テキストエディタ構成
軽量エディタと Markdown エディタを併用することで、コーディングとドキュメント作成それぞれのワークフローを最適化します。Sublime Text の場合、公式リポジトリを追加する必要があります。
# GPG キー追加
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
# HTTPS 通信対応
sudo apt-get install apt-transport-https
# リポジトリ登録(Stable 版)
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
# インストール
sudo apt-get update
sudo apt-get install sublime-text
入力環境のカスタマイズ
日本語入力をサポートするために搜狗拼音を導入します。既存の競合パッケージがある場合は、まず削除処理を行ってください。
sudo apt-get purge sogoupinyin
インストーラは公式サイトより取得した deb パッケージを使用して適用します。
NVIDIA GPU アクセラレーション環境構築
深層学習モデルのトレーニングには GPU 処理が必須です。ドライバー、CUDA ツールキット、cuDNN ライブラリの順番でインストールを行い、検証を実行します。
ハードウェアドライバーのインストール
利用する GPU モデル(例:Titan)に適合したプロプライエタリドライバーをダウンロードし、コマンドラインから実行します。
sudo chmod +x NVIDIA-Linux-x86_64-440.82.run
sudo ./NVIDIA-Linux-x86_64-440.82.run
CUDA トータルキットのセットアップ
CUDA レンダリングライブラリ群を配置します。インストール時、システム標準ドライバーとの競合を防ぐため注意書きに従います。
sudo sh cuda_8.0.61_375.26_linux.run
オプション選択画面で以下の順序で進めてください。
- Driver Integration: N (既存のステップで使用)
- Samples: Y
- Toolkit: Y
環境変数を設定し、path に加えることでいつでもコマンドが利用可能になります。
# ~/.bashrc への追記
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
/etc/profile にも同様のパス定義を追加し、グローバルな環境変数として確立します。
# /etc/profile 末尾追加
export PATH=/usr/local/cuda/bin:$PATH
最後に動的リンクの設定を更新します。
echo "/usr/local/cuda/lib64" | sudo tee /etc/ld.so.conf.d/cuda.conf
sudo ldconfig
サンプルプログラムを実行してデバイス認識を確認します。
cd ~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery
cuDNN ライブラリの適用
CUDA 上に展開されるディープラーニング専用ライブラリを展開して参照可能です。
sudo tar -xzf cudnn-9.0-linux-x64-v7.1.tgz -C /usr/local
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
統合開発環境とパッケージ管理
最終的に Python コードの開発に必要なツールチェーンを整備します。
Python バージョン管理
Miniconda を導入し、仮想環境を分割してプロジェクトごとに異なる依存関係を管理します。
bash Miniconda3-latest-Linux-x86_64.sh
conda --version
IDE の設定
JetBrains PyCharm などの統合開発環境をインストールし、先ほど設定したコンテナおよび GPU 環境を読み込めるように設定を行います。Official Download ページから Linux 用の tar.gz パッケージを取得して展開し、起動スクリプトを実行することで使用開始できます。