QEMU で Nvidia 製 GPU において GPU パススルー以外で、ハードウェアアクセラレーションを利用する方法について

この記事を作った動機 簡易的に GTX 1080 Ti と Linux 環境において、Virtio(OpenGL) や Venus(Vulkan) による GPU アクセラレーションを利用する方法について、今まで諦めていた。それでも諦めきれずに定期的に調べていたところ、対処方法が見つかった。それについて、簡易的に症状とやったことを記録したい。 デモ 以下の動画は、RDP 経由で Venus による 仮想 GPU を利用して Vulkan や OpenGL のアプリが動作している事を示している。マインクラフトの操作については、今回の RDP セットアップの仕様上、絶対座標しか送られておらず視点を動かすことができていなかったり、VPN など遠隔地から RDP 接続をして動かしているため、ラグが大きくぎこちないものとなっている。 前座 Virtio における GPU 加速 Virt-Manager において標準で利用できる仮想 GPU である。AMD や Intel の GPU 環境では特別なことをしなくても、私個人の体験としては利用できたが、Nvidia 環境ではそうならなかった。 Venus における GPU 加速 最近あたらしい GPU 加速手段の一つとして実装されたもので、デフォルトでは Virt−Manager などからはまだ利用できるようにはなっていない模様である。これについては直接 QEMU をコマンドラインから起動することが私が現在できていることであり、Virt-Manager からは XML の設定をいじってみたものの成功していない。 今回犠牲になっている事 今回提示する解決策は、最低限 仮想 GPU が Nvidia の GTX1080Ti において動作するようにする事を目的としており、以下の負担や犠牲がある。 ...

2026年8月29日

Whisper を Intel Arc で動かす

この記事を作った動機 Intel Arc で音声からの文字起こしができる Whisper を動かせることが分かったので記録したい。Whisper は PyTorch を使っているが、それを XPU に対応したものに差し替えることで動作が確認できたことに関して、具体的に作業内容を記録したい。 Whisper を使った文字起こしでは、Vibe を使うことでもできるが、Nvidia の CUDA 環境で無い限り、Intel Arc 環境においては、Vulkan を使ってしまう。PyTorch 環境においては XPU を使わなければ、Intel Arc の GPU 性能を使い切れていない気がすると思ったのもある。 ただ実際に試してみると、今のところそこまで早いとは言えず、むしろ Vulkan で動かしているときより遅い気もした。設定次第なのかもしれないが、そこまでは詳しく試していない。 環境の前提 Intel Arc を使っている Conda 環境を導入済み Linux 環境 記事の作業内容のまとめ conda create -n whisper conda activate whisper conda install pip pip install -U openai-whisper pip uninstall torch pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/xpu Whisper のインストール conda 環境を専用に作る conda create -n whisper conda activate whisper conda install pip whisper を pip でインストール 一旦 Nvidia 環境用の pytorch などがインストールされてしまうが、一旦はインストールを終わらせる。 ...

2026年6月16日

LibreChat運用に関する記録

この記事を作った動機 LibreChat を使っているうちに、色々躓いたことがあったので記録したい。躓いたことでなくてもまとめておきたいことは書きたい。 前提条件 環境構築をしたディレクトリが以下のパスになっている LibreChat の Docker 関連のファイルが以下のディレクトリにある事を前提に進める。通常であれば、各個人に合わせて作業して良い。私の場合はあくまで以下のパスにあるというだけである。 ~/LibreChat LLM サーバの構成と、LibreChatの関係 以下の図のような関係になっている事を前提にする。 MainDesktop エンドポイント エンドポイントまでのアドレスとポート番号の仮定 http://192.168.x.a:8080/v1 詳細な役割の説明 純粋に llama.cpp を動かして1つのモデルを読み込んでいる LLM サーバ専用(Gemma-4-31Bを動かす専用)に割り当てた PC である。LibreChat はここではホストしていない。Intel ARC の XPU 環境であり、LM Studio ではそのポテンシャルを引き出せないため、llama.cpp を専用にコンパイルしてセットアップしてある。OpenAI 互換 API 経由で利用可能にしてある。 DataServer エンドポイント エンドポイントまでのアドレスとポート番号の仮定 http://192.168.x.b:1234/v1 詳細な役割の説明 LM Studio を使って LLM を動かしている。こちらは、MainDesktop と異なり、NVIDIA の CUDA 環境であるため、LM Studio でポテンシャルを引き出すことができることから、LM Studio を使っている。LM Studio 標準の開発者機能から、OpenAI 互換 API 経由で利用可能にしてある。基本的に LM Studio の LLM サーバーが、LibreChat の要求に答えて選択されたモデルを自動的にロードし動かしてくれるため、いろんなモデルを動かすために使う。 その他諸々 Linux 環境である docker、docker-composeパッケージが入っている 全ては LAN 内で行われ、グローバル空間からのアクセスはできないようにしてある環境である。外出先からの利用はすべて VPN を通じて行う。 基本的な操作 設定ファイル保存場所 ~/LibreChat/librechat.yaml 設定反映方法 (librechat.yaml) 私の場合は、~/LibreChatにおいて以下のスクリプトをrestart.shとして配置し、実行することでlibrechat.yamlの変更内容を反映できる事を確認した。docker グループに入っていないユーザは、管理者権限を付与してコマンドを実行することで docker を操作できる。 ...

2026年5月22日

GTX1080Ti と GNONE と RDP で真っ白画面の不具合が起こる

記録 簡潔さのために、最初に結論を持ってくることにする。 効果があったこと 効果があったことは、gnome-remote-desktop を 50.0-1 から 49.0-1 にダウングレードすることである。安全のために自動でアップグレードされないよう/etc/pacman.confにおいて、ignorePkg の項目にgnome-remote-desktopやGDMを設定しておくことが推奨される。 試して失敗したこと、微妙だったこと Nvidia のドライバの以下のバージョンを試す 580 580 のちょっと古いバージョン 575 (カーネルバージョンを下げる必要がある。) 550 異なるデスクトップ環境(KDE)を使う Google Gemini Fast 3 に症状を具体的に投げて、提案される環境変数を試す。 Google 検索で gnome-remote-desktop や PipeWire などが吐き出すエラーについて、コピペして調べてフォームラムなどにあたってみる。 egl-gbm、egl-wayland、egl-wayland2 の 3 つのうち、egl-gbmとegl-wayland を /usr/share/egl/egl_external_platform.d/ gnome-remote-desktop 別の手段として VNC サーバである wayvnc を試してみたが、GNOME ではそもそも動作不能であった。 CUDA のバージョンを Arch Linux - cuda 13.2.1-1 (x86_64) から AUR (en) - cuda12.0 に下げた。 この記事を作った動機や経緯 最近 GNOME を動かしている GTX1080Ti を搭載するサーバ環境において、 Virt-Manager 経由で仮想マシンを立ち上げようとしたところ、部分的に更新をした影響でシステムが中途半端な状態になり、起動できないことがあった。そこでいつもどうり、すべてのパッケージを yay コマンドより更新して再起動をかけたところ異変が起こった。 具体的には、GNOME デスクトップ環境で RDP 接続時において画面が真っ白になる症状が起こった。GPU が接続されている物理ディスプレイには正しく画面が表示されているが、RDPからは内容が全く見えず、Remmina においては真っ白でマウスやキーボード入力は動作する状態で、Windows 11 25H2 の Win32 の方の伝統的な RDP クライアントでは真っ黒になってしばらくして切断されてしまうという挙動になった。結論としては、gnome-remote-desktopパッケージが新しすぎる場合、PipeWire を正しく初期化できず、pw-topなどで確認すると、音声だけ転送され画面は一切転送されていないことが分かった。 ...

2026年4月15日

Blender 5.x.x において、GTX 1080Ti(Pascal) を Cycles レンダリングで使えるようにしたい

この記事を作った動機 以下の Blender と Nvidia ドライバや CUDA の構成だと、CUDA のコンパイルに失敗して Cycles レンダリングにおける GPU 演算が正しく行われない結果になることがわかった。 yay -Qs nvidia # local/cuda 13.1.1-1 (2.2 GiB 4.7 GiB) # NVIDIA's GPU programming toolkit # local/egl-gbm 1.1.3-1 # The GBM EGL external platform library # local/egl-wayland 4:1.1.21-1 # EGLStream-based Wayland external platform # local/egl-wayland2 1.0.1-1 # EGLStream-based Wayland external platform (2) # local/egl-x11 1.0.5-1 # NVIDIA XLib and XCB EGL Platform Library # local/ffnvcodec-headers 13.0.19.0-1 # FFmpeg version of headers required to interface with Nvidias codec APIs # local/lib32-opencl-nvidia 590.48.01-1 # OpenCL implemention for NVIDIA (32-bit) # local/libnvidia-container 1.19.0-1 # NVIDIA container runtime library # local/libva-nvidia-driver 0.0.16-1 # VA-API implementation that uses NVDEC as a backend # local/libvdpau 1.5-4 # Nvidia VDPAU library # local/libxnvctrl 590.48.01-1 # NVIDIA NV-CONTROL X extension # local/linux-firmware-nvidia 20260309-1 # Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs # local/nvidia-580xx-dkms 580.142-1 # NVIDIA kernel modules - module sources (580xx) # local/nvidia-580xx-utils 580.142-1 # NVIDIA drivers utilities (580xx) # local/nvidia-container-toolkit 1.19.0-1 # NVIDIA container toolkit # local/nvidia-prime 1.0-5 # NVIDIA Prime Render Offload configuration and utilities # local/nvidia-settings 590.48.01-1 # Tool for configuring the NVIDIA graphics driver # local/opencl-nvidia 590.48.01-4 # OpenCL implemention for NVIDIA yay -Qs blender # local/blender 17:5.0.1-9 # A fully integrated 3D graphics creation suite # local/blender-4.2-bin 4.2.260319.12a2dfa84963-1 # A fully integrated 3D graphics creation suite # local/blender-4.2-bin-debug 4.2.260319.12a2dfa84963-1 # Detached debugging symbols for blender-4.2-bin また、AUR にある CUDAの以下のバージョンを試したが、どれも正しく動かなかったし、現時点(2026/3/22)ではまだ動かす方法は見つかっていない。 ...

2026年3月22日

Nvidia のドライバを導入する

この記事を作った動機 最近元々 Windows が入っていたPCに対しても、linux環境に乗り換えるようになった過程で、Nvidia 製の GPU である Quadro M620 に対して、プロプライエタリな Nvidia社が提供しているドライバをインストールしようとしたところ問題が発生したため、具体的に何をしたか記録を取る。 基本的に今回起こった問題としては、aur から Nvidia のプロプライエタリなドライバを導入しただけでは設定不足で、正しく起動できず、カーネルなどを読み込み終わったあとに、画面が切り替わろうとするとき、解像度がおかしくなったり、画面が映らなくなったり、ケーブルを抜き差しすることで突然映るようになったりという挙動になった。 問題が何なのか調べたりLLM(Gemini)に投げつけたりしたところ、initramfsで起動する段階で Nvidiaのドライバを読み込んでないと、その後の起動後にディスプレイの EDID の情報が正しく読み込めないのではないかということが分かった。これは、起動時には画面が映らなかったり解像度がおかしい状態になることと、ケーブルを抜き差しすると映るようになることからも、起動時に Nvidia のモジュールがロードされていなかった場合に、その後の初期化フェーズで Nvidia のドライバが読み込まれても提携できてないということで、説明がつくように思われる。 ちなみに設定不足のときに、dmesgでカーネルのメッセージを見ると以下のようなエラーが出ていた。 dmesg | grep nvidia ... R* [nvidia-drm] [GPU ID 0x00000100] Failed to add encoder for NvKmsKapiDisplay 0x00000001 ... 環境 環境 System Details Report Report details Date generated: 2026-01-17 20:53:19 Hardware Information: Hardware Model: HP HP Z2 Mini G3 Workstation Memory: 16.0 GiB Processor: Intel® Xeon® E3-1225 v5 × 4 Graphics: Quadro M620 Disk Capacity: 512.1 GB Software Information: Firmware Version: N53 Ver. 01.91 OS Name: Arch Linux OS Build: (null) OS Type: 64-bit GNOME Version: 49 Windowing System: Wayland Kernel Version: Linux 6.18.5-arch1-1 ...

2026年1月18日