チュートリアルで「DynaMight flexibility」から「Visualising the deformations」を実施すると下記のような napariの画面が表示される

リモートアクセスにて画面真ん中の像を回転させると...重い.
この描画速度を向上させたい.
利用シーンとして
以上経路としては上記3つ. 1つめのコンソール使用は説明を省く. 2つ目、3つ目はVirtualGL, VirtualGL/memoにも記載しているが再度ここで説明します.
状況確認 計算機は multi-user モードなので「nvidia-smi」としても「No running processes found」と表示される
[root@rockylinux9 ~]# systemctl get-default
multi-user.target
[root@rockylinux9 ~]# nvidia-smi
:
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
[root@rockylinux9 ~]# glxinfo|grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA RTX A2000/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 570.181
OpenGL core profile shading language version string: 4.60 NVIDIA
:
[root@rockylinux9 ~]#まずは VirtualGL と turbovnc をインストールします.
[root@rockylinux9 ~]# dnf install https://github.com/TurboVNC/turbovnc/releases/download/3.2/turbovnc-3.2.x86_64.rpm
[root@rockylinux9 ~]# dnf install https://github.com/VirtualGL/virtualgl/releases/download/3.1.3/VirtualGL-3.1.3.x86_64.rpm
[root@rockylinux9 ~]# lsmod |grep nvidia
nvidia_uvm 4026368 0
nvidia_drm 143360 0
nvidia_modeset 1728512 1 nvidia_drm
nvidia 11685888 2 nvidia_uvm,nvidia_modeset
video 77824 1 nvidia_modeset
drm_ttm_helper 16384 4 bochs,drm_vram_helper,nvidia_drm
drm_kms_helper 266240 4 bochs,drm_vram_helper,drm_ttm_helper,nvidia_drm
drm 811008 8 drm_kms_helper,bochs,drm_vram_helper,nvidia,drm_ttm_helper,nvidia_drm,ttm
[root@rockylinux9 ~]# rmmod nvidia_drm nvidia_uvm nvidia_modeset nvidia <-- 設定前にnvidia関係を外します
[root@rockylinux9 ~]# nvidia-xconfig --enable-all-gpus --allow-empty-initial-configuration --use-display-device=None <-- /etc/X11/xorg.conf を作ります
[root@rockylinux9 ~]# /opt/VirtualGL/bin/vglserver_config --help
USAGE: /opt/VirtualGL/bin/vglserver_config [flags]
Flags (for unattended mode):
+glx/-config Configure server for use with VirtualGL (GLX + EGL back ends)
-glx/-unconfig Unconfigure server for use with VirtualGL (GLX + EGL back ends)
+egl Configure server for use with VirtualGL (EGL back end only)
-egl Unconfigure server for use with VirtualGL (EGL back end only)
-s Restrict 3D X server access to vglusers group [default]
+s Open 3D X server access to all users of this machine
-f Restrict framebuffer device access to vglusers group [default]
+f Open framebuffer device access to all users of this machine
-t Disable XTEST extension [default]
+t Enable XTEST extension
Flags (for both interactive and unattended modes):
-gid <g> If vglusers group must be created, then set its group ID to <g>
[root@rockylinux9 ~]# /opt/VirtualGL/bin/vglserver_config +glx +s +f -t <-- VirtualGLの設定
[root@rockylinux9 ~]# systemctl set-default graphical.target <-- graphical ログインに変更します
[root@rockylinux9 ~]# rebootVirtualGLを使いたいユーザでログインして
[saber@rockylinux9 ~]$ /opt/TurboVNC/bin/vncpasswd <-- パスワードの定義(初回だけ)
[saber@rockylinux9 ~]$ /opt/TurboVNC/bin/vncserver -vgl -wm gnome-classic
[saber@rockylinux9 ~]$ /opt/TurboVNC/bin/vncserver -list
:
X DISPLAY # PROCESS ID NOVNC PROCESS ID
:1 2704
[saber@rockylinux9 ~]$windowsPC/macOSにインストールした 「TurboVNC viewer」を立ち上げて「rockylinux9:5901」にアクセスします. 注意「firewall-cmd」で5901/tcpに穴をあけてください. あるいはfirewalldを停止.
「vncpasswd」で定義したパスワードを入力します
これでリモートアクセスでもアクセスした計算機のGPUを使っての高速な描画を体験できます.
napariが動いたときの「nvidia-smi」は下記のようになります
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1015 G /usr/libexec/Xorg 53MiB | <-- /usr/libexec/Xorg
| 0 N/A N/A 1371 G /usr/bin/gnome-shell 3MiB | <-- gdm の /usr/bin/gnome-shell
| 0 N/A N/A 1871 G /usr/bin/gnome-shell 134MiB | <-- ユーザの /usr/bin/gnome-shell
| 0 N/A N/A 3638 C+G ...-1/envs/relion-5.0/bin/python 1054MiB | <-- ユーザの napari(DynaMight)
+-----------------------------------------------------------------------------------------+像を動かすと当然GPUは働きますが、同時にCPUも働きます(threadsで). nvtopの画面から
仕組み的にネットワーク回線が太くないと無理. 1Gbps使えるなら十分.
VirtualGL/memoに示したように
注意点:
計算ノードに VirtualGL と turbovnc を事前にインストールする事.