#author("2025-08-14T20:50:23+00:00","default:sysosa","sysosa") #author("2025-08-14T20:52:51+00:00","default:sysosa","sysosa") チュートリアルで「DynaMight flexibility」から「Visualising the deformations」を実施すると下記のような napariの画面が表示される &ref(2025y08m15d_033002934.png,nolink,70%); リモートアクセスにて画面真ん中の像を回転させると...重い. この描画速度を向上させたい. 利用シーンとして -計算機に繋がったモニター越しで使う 描画は早いでしょう. もっと高速に描画させたいならGPUにモニターを繋げ、BIOS設定で「off-board VGA表示を優先」とかにすれば最速かなと. nvidiaドライバのインストール時に nvidia ドライバー由来のopenglライブラリを入れることに留意. nvidiaドライバインストール時に「--disable-nouveau --no-opengl-files --no-libglx-indirect」を付けない. -リモートアクセスで使う VirtualGL を有効にする -ジョブ管理ノード使用下でログインノード[GPU搭載無し]で使用する 計算ノードに VirtualGL を載せて使用する. 以上経路としては上記3つ. 1つめのコンソール使用は説明を省く. 2つ目、3つ目は[[VirtualGL]], [[VirtualGL/memo]]にも記載しているが再度ここで説明します. ***VirtualGLのインストール [#n0d717cf] 状況確認 計算機は multi-user モードなので「nvidia-smi」としても「No running processes found」と表示される #code(nonumber){{ [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 をインストールします. #code(nonumber){{ [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 ~]# reboot }} VirtualGLを使いたいユーザでログインして #code(nonumber){{ [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」にアクセスします. &color(red){注意};「firewall-cmd」で5901/tcpに穴をあけてください. あるいはfirewalldを停止. 「vncpasswd」で定義したパスワードを入力します これでリモートアクセスでもアクセスした計算機のGPUを使っての高速な描画を体験できます. ***メモ [#b418d3d1] napariが動いたときの「nvidia-smi」は下記のようになります #code(nonumber){{ +-----------------------------------------------------------------------------------------+ | 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使えるなら十分. ***ログインノードにGPUをもってなく、GPUを利用するには計算ノードを使うしかない. [#j8bfc915] [[VirtualGL/memo]]に示したように -1. GPU を確保した インターラクティヴジョブ を発行します インターラクティヴジョブで割り当てられた計算ノードのホスト名を調査 -2. windowsPC/macOSから ログインノードから ホスト名 までのSSHトンネルを掘る -3. 「TurboVNC viewer」を起動して 接続先を localhost に回す 注意点: 計算ノードに VirtualGL と turbovnc を事前にインストールする事.