diff --git a/README.md b/README.md index 13554d1..4ec1280 100644 --- a/README.md +++ b/README.md @@ -3,22 +3,35 @@ OpenGLやGLXなどを使ってグラフィック用途でGPUを使うアプリケーションを、画面のないheadlessサーバー上で、しかもDocker内で動かす方法の最新版 具体的には、Unityで作られたソフト本体の自動テスト環境やそれを使ったCI環境を、GPUインスタンスを含んだkubernetesクラスタ上に構築したい時に使える。 +ホストの要件 +NvidiaのGPU付きのPC、X11を使うため、リモートで使うと、(ヘッドレスサーバーを想定しているため、)ローカルでは、使えなくなる。 +研究室内で使えるのは、 + +192.168.100.201 +192.168.100.211 +192.168.100.221 + +の3台のみ ## Update: support noVNC -- noVNCを使用しブラウザからアクセスできるようにしました。 +- noVNCを使用したブラウザからのアクセスは、ポート6080を使用。一般には、vnc.htmlをアクセスし、パスワードを入れれば入れるが、エラーが出る場合(多分、ブラウザのキャッシュの関係だと思う。)もあり、 +この場合、vnc_lite.htmlからアクセスするとできる。 -実行するには: +Buildするには: ``` -bash server.sh +./build.sh +``` +Runするには: +``` +./run.sh ``` ## Background -自動テストサーバーを作るために、 https://github.com/lgsvl/simulator をKubernetes上で動かしたかった。 - +Carlaをヘッドレスで動かしたかった。 ECSもGPUインスタンスをサポートし始めたので、Docker内でグラフィック系アプリケーションをGPU機能込みで閉じ込めたい需要は割とあると思うので、まとめておく。 ## Method @@ -26,35 +39,9 @@ ### 1. 研究室サーバーでGPU対応のKVMクライアントへのセットアップ KVMクライアントへGPUのドライバとnvidia-docker2をインストールする。 - - -ここで使ったのは -それ以外は標準のままのインスタンス。us-west1-bに立ち上げた。起動時にwarningが出るが気にしない。ブラウザ上で設定したが、同様のコマンドは以下。 - -``` -gcloud compute --project=$PROJECT_NAME create $INSTANCE_NAME \ - --zone=us-west1-b \ - --machine-type=n1-highmem-2 \ - --subnet=default \ - --network-tier=PREMIUM \ - --metadata=framework=TensorFlow:1.13,google-logging-enable=0,google-monitoring-enable=0,install-nvidia-driver=True,status-config-url=https://runtimeconfig.googleapis.com/v1beta1/projects/sever-rendering/configs/tensorflow-1-config,status-uptime-deadline=600,status-variable-path=status,title=TensorFlow/Keras/Horovod.CUDA10.0,version=27 \ - --maintenance-policy=TERMINATE \ - --service-account=471732791036-compute@developer.gserviceaccount.com \ - --scopes=https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/cloud.useraccounts.readonly,https://www.googleapis.com/auth/cloudruntimeconfig \ - --accelerator=type=nvidia-tesla-t4,count=1 \ - --tags=deeplearning-vm \ - --image=tf-1-14-cu100-20190619 \ - --image-project=click-to-deploy-images \ - --boot-disk-size=100GB \ - --boot-disk-type=pd-standard \ - --boot-disk-device-name=tensorflow-1-vm-1 \ - --labels=goog-dm=tensorflow-1 -``` - -ssh port forwardを使うので、sshクライアントからログインできるようにセットアップしておく。(コンソールからssh鍵を登録する。`ssh-keygen -t rsa -C "$USERNAME" -b 4096 -f ~/.ssh/$KEYNAME` コメントのユーザー名に指定したユーザーでしかログインできないので注意。) +なお、(ローカルで画面が出せなくなってしまうため、)サーバーには、Graphicsカード内臓のCPUとNvidiaのGraphsicsカード、または、NvidiaのGraphicsカードを2枚入れる必要あり! sshログインして`nvidia-smi`を実行して、GPUが検出されることと、入っているドライババージョンを確認 -上のVMでは、Tesla T4とドライババージョン410.104が入っていた。 ### 2. container立ち上げ