Internet of Tomohiro
よろしければ投げ銭をお願いします。
2022/9/15: Google ColaboratoryでリモートデスクトップまたはSSH を使うことは許可されなくなりました
Unigine ValleyをGoogle Colaboratoryで動かしているところGoogle Colaboratory 上のデスクトップ環境にアクセスするには ngrok または Argo Tunnel のどちらかを使う必要があります。
sshクライアント
Windowsを使う場合は scoop を使うと簡単にopensshをインストールできます。
詳しい手順は以下のサイトをご覧下さい。
https://github.com/demotomohiro/remocolab/blob/master/README.md
うまくいかないときは以下のページが参考になるかもしれません。
https://github.com/demotomohiro/remocolab/wiki/Frequently-Asked-Questions
- Google Colaboratory を開いたら、上部メニューの"ランタイム"→"ランタイムのタイプを変更"からハードウェアアクセラレータをGPUに設定してください。
!pip install git+https://github.com/demotomohiro/remocolab.git import remocolab remocolab.setupVNC()
!pip install git+https://github.com/demotomohiro/remocolab.git import remocolab remocolab.setupVNC(tunnel = "argotunnel")
問題無く接続できれば以下のような画面が見えます。
以下のコマンドでNVIDIAのOpenGL実装が使えるかどうか確認できます。
$ vglrun /opt/VirtualGL/bin/glxinfo | grep NVIDIA
問題なければ以下のような出力がでるはずです。
OpenGL vendor string: NVIDIA Corporation OpenGL core profile version string: 4.6.0 NVIDIA 418.67 OpenGL core profile shading language version string: 4.60 NVIDIA OpenGL version string: 4.6.0 NVIDIA 418.67 OpenGL shading language version string: 4.60 NVIDIA
以下の内容はリモートデスクトップ上で実行してください。 TurboVNC ViewerではローカルPCとリモートPC間でコピペすることができます。 OpenGLを使うプログラムを実行するときは vglrun の後に実行するプログラムを指定します。 vglrun をつけずに実行するとTurboVNC付属のソフトウェアGLX/OpenGL実装が使われるのでレンダリングが遅くなります。
SSHからプログラムを起動しVNC上に表示したい場合には以下のように DISPLAY=:1 をつけてコマンドを実行します。
$ DISPLAY=:1 vglrun firefox &
ターミナルを開いて以下のコマンドでfirefoxをインストールして実行します。
$ su # apt install firefox # exit $ vglrun firefox
firefoxで Shadertoy のページを開きます。
Unigine Valley のページからUnigine Valleyをダウンロードします。 次に以下のコマンドでファイルを展開して実行します。
$ chmod +x Unigine_Valley-1.0.run $ ./Unigine_Valley-1.0.run $ cd Unigine_Valley-1.0 $ vglrun ./valley
Blender の公式サイトのDownloadページからLinux 64bit用のファイルをダウンロードします。 次に以下のコマンドでファイルを解凍し、実行します。
$ tar xf blender-2.79b-linux-glibc219-x86_64.tar.bz2 $ cd blender-2.79b-linux-glibc219-x86_64 $ vglrun ./blender
Godot の公式サイトのDownloadページからLinux 64bit用のファイルをダウンロードします。 次に以下のコマンドでファイルを展開して実行します。
$ unzip Godot_v3.1-stable_x11.64.zip $ vglrun ./Godot_v3.1-stable_x11.64
remocolab はOpenSSH、 TurboVNC 、 libjpeg-turbo 、 VirtualGL 、 Xfce のダウンロードとインストールを行っています。 TurboVNC を使って Google Colaboratory の仮想マシン上にデスクトップを起動しリモートPCからアクセスできるようにしています。 TurboVNC はサーバ上のデスクトップ画面を TurboVNC Viewer を実行しているクライアントPCに送り、クライアントPCからマウスとキーボード入力を受け取ります。 TurboVNC は libjpeg-turbo を使って画面の画像を圧縮してから送信しています。 SSH port forwardingを使うことによってこれらの通信を暗号化しています。 remocolab では外部からSSHを使わず直接TurboVNCに接続することができないように設定しています。 OpenGLを使うプログラムを実行するときにVirtualGLを使うことによってTurboVNC上でも普通のデスクトップ上で実行したときと同じようにサーバ上のGPUを使ったハードウェアアクセラレーションが効くようにしています。
TurboVNC Viewer Optionsを開き、Encoding methodを Tight + Medium-Quality JPEG または Tight + Low-Quality JPEG(WAN) に設定します。 ノイズが見えるようになりますが、カクツキが軽減します。
TurboVNC Viewer Optionsを開き、 Connection タブをクリックして Remote desktop size に好きなサイズを設定します。
by Tomohiro