Translate

2016年11月11日金曜日

Ubuntu Server 1604 LTS への Cuda インストール手順

前提

  • PC に Cuda対応 GPU搭載ボードを取り付けていること
以下のGPUボードを購入して試しました。



  • 取り付けたボードがCuda対応が不明の場合は CUDA GPUs を参照のこと
  • Ubuntu Server 16.04 LTS を最小構成インストール済みであること
  • https://developer.nvidia.com/ 上のNVIDIA Developer Programアカウントを取得しておくこと

まずCuda本体をインストールする。

SSHサーバ化

  • Ubuntu Server をインストールした PC から sudo 可能なユーザでコンソールログイン
  • 以下のコマンドを実行

    sudo apt update
    sudo apt -y upgrade
    sudo ip addr ← IPアドレスをメモしておく
    sudo apt -y install openssh-server
    sudo reboot


    ※再起動する

IPv6 をオフ

  • クライアントPC上でTera TermなどのSHA2対応したターミナル接続ソフトウェアを起動
  • sudo可能なユーザでログオン
  • 以下のコマンドを実行

    sudo echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
    sudo sysctl -p
    sudo reboot


    ※再起動する


vftpdをインストール


クライアントPC上のファイルをアップロードできるように、ftpサーバをインストールする。

  • sudo可能なユーザでログオン


    sudo apt update
    apt -y upgrade
    apt -y install vsftpd

  • sudo vi /etc/vsftpd.conf を実行し、以下の通り編集する

    ...
    # 31行目:コメントアウト
    write_enable=YES
    ...

    # 99,100行目:コメントアウト
    ascii_upload_enable=YES
    ascii_download_enable=YES
    ...

    # 122,123行目:コメントアウト
    chroot_local_user=YES
    chroot_list_enable=YES

    # 125行目:コメントアウト
    chroot_list_file=/etc/vsftpd.chroot_list

    # 131行目:コメントアウト
    ls_recurse_enable=YES

    # 最終行に追加
    seccomp_sandbox=NO

  • 以下のコマンドを実行する

sudo echo "xxxx" > /etc/vsftpd.chroot_list ← "xxxx" はsudo可能ユーザ名に変える
sudo systemctl enable vsftpd
systemctl restart vsftpd

gcc/g++/makeをインストール


Cudaをrunfileからインストールする場合、gccとmakeが必要となる。また、Samplesコードをコンパイルする際には、g++が必要となる。
  •  以下のコマンドを実行する

    apt install gcc g++ make

Cudaダウンロード

  • クライアントPC上でブラウザ起動
  • https://developer.nvidia.com/cuda-downloads を開く
  • Select target platformにて"Linux"、"x86_64"、"Ubuntu"、"16.04"、"runfile(local"を選択
  • Downloadボタンを押し、ファイルをダウンロード
  • ダウンロードしたファイルを cuda_8.0.44_linux.run とする。
  • DOSプロンプトを起動する
  • 以下のコマンドを実行し、Ubuntu Server側へファイルを送信する


    cd C:\hogehoge ←cuda_8.0.44_linux.runのあるフォルダへ移動
    ftp xxx.xxx.xxx.xxx ←メモしたIPアドレスを指定
    bin
    hash
    put cuda_8.0.44_linux.run
    bye
    exit

runfileの実行

  • Ubuntu Server側のコンソールへ戻る
  • 以下のコマンドを実行する
sudo sh cuda_8.0.44_linux.run
..
※何回かスペースを打つ
..
accept ←ライセンスに従う場合
※以下不デフォルト選択でOK(デフォルトがない場合はyes)

cuDNNのダウンロード

  • クライアントPC上でブラウザを起動
  • https://developer.nvidia.com/rdp/cudnn-download を開く
  • 要ログインアカウント、予めログインアカウントを作っておく
  • ユーザID(登録済みメールアドレス) とパスワードを入力しログイン
  • I Agree To the Terms of the cuDNN Software License Agreementをチェック
  • Download cuDNN v5.1 (August 10, 2016), for CUDA 8.0 をクリック
  • 導入したCudaバージョンによる(ここでは8.0.44を導入したため、8.0を選択)。
  • cuDNN v5.1 Library for Linux を選択
  • ファイルをクライアントPC上にダウンロードする(ファイル名をcudnn-8.0-linux-x64-v5.1.tgzとする)ダウンロードしたファイルの拡張子を tgz から tar.gz に変更
  • DOSプロンプトを起動する
  • 以下のコマンドを実行し、Ubuntu Server側へファイルを送信する


    cd C:\hogehoge ←cuda_8.0.44_linux.runのあるフォルダへ移動
    ftp xxx.xxx.xxx.xxx ←メモしたIPアドレスを指定
    bin
    hash
    put cudnn-8.0-linux-x64-v5.1.tar.gz
    bye
    exit


cuDNNのインストール

  • Ubuntu Server側のコンソールへ戻る
  • 以下のコマンドを実行する

    gunzip cudnn-8.0-linux-x64-v5.1.tar.gz
    tar xvf cudnn-8.0-linux-x64-v5.1.tar
    sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64/
    sudo cp -a cuda/include/cudnn.h /usr/local/cuda-8.0/include/

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...