見出し画像

UbuntuにおけるオンボードGPUでのディスプレイ表示 (番外編/完結編)

一般家庭向けPCマザーボードの場合、PCIeスロットを2つ以上利用すると速度低下することがある。たとえば僕のASRock Z370 Taichiは1スロット利用でx16だけれども、2スロット利用するとx8 x 2となってしまう。そんな訳でUbuntu 22.04稼働時の一時的な暫定措置としてAMD製グラボをディスプレイ表示用に利用していたけれども、何とかオンボード表示させたい状況だった。

いかにQuadra RTX 8000 (48GB) を保有していても、その実力を発揮しきれないのでは、全くもってして価値半減である。悔しくて悔しくて夜も眠れないほどストレスになって来たので、乏しい技術力と、GPT3.5の力にすがって解決するまで頑張ってみた。

前置きが長くなってしまったけれども、今回は無事にUbuntuもオンボードGPUで画面表示できるようになったので、その作業内容を報告する。

犯人は君(X11)だ

さてNVIDIAドライバをインストールして再起動すると「くらげ(壁紙)だけの表示」となってしまう我が "人工知能" 初号機と弐号機だけれども、実は最初から犯人の見当はついていた。

したがって今回はミステリ小説の要素はカケラも存在しない。怪しいのはX WindowことX11だと分かっていた。

何しろ壁紙はちゃんと表示されているから、基本的な処理は一通り実行完了してGUI処理までは行っているということになる。それにAMD製グラフィックボード(GPU)をPCIeスロットに装着して利用している時は、下記のような表示内容だった。

日本語LLM ELYZA 7B版が稼働中のGPU状況

ELYZAはpython3のプロセスとして動作している訳だけれども、その上にXorgというのが存在する。これ、GPU系で動くものといったら、X Window以外には思いつかない。週末エンジニアに過ぎなくても、それくらいは察しがつく。

これはGoogle先生とGPT3.5先生に相談したところ、やっぱりX Windowが怪しいとのことだった。まずBIOS設定の(Chipset部分)プライマリグラフィックをオンボード (IGD) にして、IGPU Multi-MonitorをDisabled→Enabledへ変更したらオンボード表示となった。

しかしこれだけで解決するならば苦労はしない。いちおう表示されるようになったものの、なぜか描画速度がカタツムリのように遅い。なにやら無理やり出力を変更しているので、劇遅のレスポンスな可能性がありそうだ。

なにやらnouveau.modeset=0をnouveau.runpm=0にすれば解決したという話も聞いたけれども、これも役に立たなかった。あまりにストレスが溜まったので、つい真夜中に弐号機用に第10世代マザボとIntel Core i5 10500Tまで衝動買いしてしまった。我ながら本当に変なオッサンである。

解決編:Xを止めろ!

さて昔のX Windowの設定に関してはxorg.confが有名だったけれども、現在は使わなくなってしまったとのことだ。
そこであれこれと検索を重ねて、辿り着いたのが下記2つのブログ記事だ。

なるほど… NVIDIAでは/etc/X11/xorg.confを作成するコマンドも提供しているのですな。GPT3.5先生は sudo nano /etc/X11/xorg.confでファイル作成&編集せよとの仰せだけれども、そんな手間をかけずに済むらしい。また下記のコマンドで、表示用デバイスを確認できるとのことだ。

$ lspci | grep VGA

ここまで分かれば、あとは金子先生の説明をカスタマイズすれば良い。

  1.  nouveau(ヌーボー)ドライバの無効化 (金子先生)

  2.  NVIDIAドライバのインストール (金子先生)

  3.  nvidia-xconfigコマンドでxorg.conf作成(オリジナル)

  4.  X11を起動させなくする設定 (オリジナル)

  5.  リブート (金子先生)

  6.  /etc/X11/xorg.confの作成 (オリジナル)

  7.  X11を起動する設定 (オリジナル)

  8.  リブート (オリジナル)

上記の手順を実施したところ、めでたくAMD製グラフィックスボードは不要となり、オンボードGPUで画面表示できるようになった。もちろんNVIDIA Telsa P40 GPUでX Windows関連のリソースが消費されることも無くなった。

UbuntuでもWindowsのようにオンボードGPU利用を実現 (nvidia-smiコマンド表示)
sudo nvidia-xconfig

なお興味深かったのは、なぜかX11を利用しないコンソール画面オンリーでログインしたら、Bus IDは1:0:0となっていた。

BusID          "PCI:179:0:0"

Section "Device" 部分だけれども、ここはGPT3.5先生に従って Identifierはintelに書き換え、Driverもintelに書き換え、Bus IDは事前にlspciコマンドで確認した0:2:0へと変更した。

これだけで今まで散々悩まされてきた状況が一気にアッサリと解決してしまったのだから、本当にコンピュータというのは微妙な存在で、それを取り扱う知識や技量というのは重要だと痛感させられる。参考情報をブログで公開して下さっている方々や、Google先生やGPT3.5先生には感謝するばかりである。

しめくくり

随分と貴重な時間を山のように溶かしてしまったけれども、これで本当に生成AIというかLLM (Large Language Model) を利用するための環境は整った。無事にELYZAも利用できるし、あとはひたすら本題のLLM利用に邁進するだけだ。

いやー、それにしても久しぶりに良い汗… じゃなくて、ガマの油汗のようなものを出しまくってしまった。パッシブ冷却型のGPUに12cmファンを装着するのも苦労した。

しかし父親の休日や深夜のアヤシゲな作業を、生暖かい目で見守ってくれた家族には大いに感謝する次第である。父ちゃん、これから頑張りますよ。

それでは今日はこの辺で。では。

=========
オノセー (小野谷静)

この記事が気に入ったらサポートをしてみませんか?