幸運にも格安でGeForce RTX 2080 Tiマシンを作ることができました。Ubuntuを入れてリモートでうまいこと開発できるようにいろいろと環境を整えていきましょう。過程でグラボが本物かどうかも確かめられます。

使用OS

Ubuntu 16.04.5 LTS (Xenial Xerus)のDesktop用イメージ(ubuntu-16.04.5-desktop-amd64.iso)です

http://releases.ubuntu.com/16.04/

セキュリティ設定とかいつものやつ

sudo apt update
sudo apt upgrade
# ssh
sudo apt install openssh-server

# ssh設定で、ポート変更 & 秘密鍵認証を設定
sudo vi /etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config 
mkdir .ssh
vi .ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sudo /etc/init.d/ssh restart

# セキリティアップデートを自動で適用するように設定
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

# ポート制限
sudo ufw default DENY
# 使うポートをallowする
sudo ufw allow 5900
sudo ufw enable
# 確認
sudo ufw status

GPU関連

# nvidia gpu driver
sudo add-apt-repository ppa:graphics-drivers/ppa
# 最新は415だがcudaがまだなので410
sudo apt install nvidia-410
sudo reboot

# 確認
nvidia-smi
> 結果
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.73       Driver Version: 410.73       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  Off  | 00000000:01:00.0 Off |                  N/A |
| 30%   28C    P8    20W / 300W |     70MiB / 10986MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
# 使用時の負荷などモニタリングは以下コマンドでできる
watch -n 1 nvidia-smi

# cuda
sudo dkpg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub 
udo apt update
sudo apt install cuda

cudnnはcondaでどうにかしてくれる運用です。condaと和解しよう。

途中でチラッと出てますが、以下コマンドでgpu名を確認できます

nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv
> 結果
name, pci.bus_id, vbios_version
GeForce RTX 2080 Ti, 00000000:01:00.0, 90.02.0B.40.A3

ほんとにRTX 2080 Tiでした。やったー

他に必要そうなソフトとか

  • AnacondaはGUIでインストール
  • ffmpeg
# ffmpeg
sudo add-apt-repository ppa:jonathonf/ffmpeg-3
sudo apt update
sudo apt install ffmpeg libav-tools x264 x265

リモートデスクトップ設定

開発用なので画面を使わずに電源を付けっぱなしにしておいて、GUIが必要な場合はリモートデスクトップ接続を利用したいところです。

しかしUbuntu desktopには罠があり、起動時に画面を繋げていなければ起動しない、起動後に画面を付け替えたりしても解像度が対応できないなどにハマります。これLinuxの問題な感じがしますね。Linux Desktopへの道のりはまだまだ遠そうです。

で、回避策としてX serverの設定でフェイクのディスプレイを設定するというものがあります。 /usr/share/X11/xorg.conf.d/10-monitor.conf を以下のように作り再起動します。

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0    #Virtual monitor needs this
    VertRefresh     43.0 - 72.0    #this, too
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"              #change for AMD or Intel
    VendorName     "NVIDIA Corporation"  #this, too
    Option "NoLogo" "1"                  #also this
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
        Virtual 1920 1080
    Option          "AllowEmptyInitialConfiguration" "True"
    EndSubSection
EndSection

これで画面を繋がなくてもちゃんと起動するようになりました。

リモートデスクトップサーバーをインストールします。vncよりはrdpの方が早いのでxrdpを使います。

# xrdpでwindowsからリモートデスクトップできるようにする
sudo apt-get install xrdp
sudo /etc/init.d/xrdp start

試しにwindowsの「リモートデスクトップ接続」を使って接続してみてください。

consoleを選択し、ログインパスワードを入力すればつながるはずです。

最後に、unity(デスクトップ環境)は重くてリモートデスクトップに向かないので変更します

# 軽量なデスクトップlubuntuに変更する
sudo apt install lubuntu-core lubuntu-icon-theme lubuntu-restricted-extras
sudo reboot
画面をつないで一度lubuntuでログイン

これでかなり快適に開発できるようになりました!

関連記事

iRangeXのドローン用プロポを修理する

blenderで操作不能になったら見るまとめ

香港の重慶大厦(チョンキンマンション)での香港ドル両替はどれぐらいお得なのか検証

1755 MHz OCのRTX 2080 TiタワーPC(32GBメモリ)を28万円で作った話

Razer Bladeのバッテリーをaliexpressで買って交換した

blenderでオブジェクトのキーフレームを途中からごっそり入れ替える

コメント

コメントを返信する

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です