生成AI

IntelのGPU環境を壊したので再構築した顛末記 (A770)

今回は導入したばかりのIntel GPU A770環境をチューニングできないかと試していて、環境を破壊&再構築した顛末記。てっきり最初はA770を破壊してしまったのかと疑い… ま、順を追って説明することにしよう。

 

さわらぬ神にたたりなし

「さわらぬ神にたたりなし」という諺がある。これはITシステムにも言える話で、少しくらい不満があっても仕事をしてくれているならば、下手にいじらない方が良いというのはエンジニア的な常識とさえ言える。

そもそも日本を支える社会インフラ向けのITシステムを保守サポートしていた経験もあるけれども、「システムが動かくなくなりました!」と障害対応依頼の連絡を頂く時には、「最近いつも違うことをやっていなかったかを教えて下さい」ということは確認必須だった。

当方の場合はノートパソコン環境に比べて、妙にデスクトップ環境でのIntel Arcを使った生成AI(LLM:Command R Plus 104B版)の動作が遅く感じられるという状況だった。賢い人ならば、しばらく様子見をするだろう。

しかしモチロン、こちらは『残念な人』なので躊躇はない。ドライバ周りの設定で何かミスをしていないかと、確認作業やソフトウェア・アップデートを実施してみた。何しろIntel Arc A730Mを搭載したノートパソコンは組み込み済みGPUだから、A730Mは適切な設定で稼働するようになっている。

一方でデスクトップPCは苦労の末にNVIDIA Telsa P40(24GB)を稼働させることができるようになったのに、ド素人が勘任せでIntel Arc A770に付け替えただけである。さらに純正品ではなく、予算の関係で格安だったASRockのOEM版を購入した。ドライバ類はIntelが提供しているものを、そのまま採用している。

それでASRockの箱に入っていた紙切れを確認したら、「Intelがここで紹介しているドライバ類をご利用ください」となっている。そこではArc A770ドライバだけではなく、Bluetoothドライバなども提供されていた。で、そこの指示に従って… 従ったつもりでドライバ類をアップデートしたら、いきなりLLM(生成AI)を実行するためにC/C++で書かれたLlama.cpp実行環境が、動かなくなってしまった。

「実行する権限がありません」発生

そのうち余裕ができたら画像をアップしたいが、「さて人工知能サマ(LLM:Comman R Plus 104B版)にお伺いを立ててみようか」とoneAPI環境コンソールから子マンを叩いたら、いきなり「このプログラムは実行する権限を持っていません」というメッセージが表示されるようになってしまった。

コンソールを再起動してもダメ。デスクトップPCを電源オフしてから電源オンしてもダメ。OSがインストールされているSSDを交換して、Ubuntu 22.04 Linux環境しても、なぜかLlama.cppプログラムを実行させることが出来なくなっていた。つまりDeep SilentデスクトップPCは、人工知能(生成AI)に関しては文字通り沈黙してしまったという訳だ。

もちろん動かなくなったWindows環境の入っているSSDを別SSDに交換し、Windows 11を再インストールして復活しないかを確認してみた。しかし結果は、全く芳しくないものだった。

  • 元のWindows環境:実行できません表示のまま
  • 新Windows環境:コマンド実行しても何も反応なく終了
  • Ubuntu 22.04環境:もう忘れた

思い返してみれば、Intel Arc A770に手を当てた時は、デスクトップPCのWindowsタスクマネージャーで表示されている58度どころじゃなかった。ノートパソコンではA730Mの温度は74度まで行くことがあり、冷却が大変だった。そこまで発熱していなくても、60度後半に達していそうな感じだった。

「いい加減に使っていて、壊してしまったか…」

実はA770、予想外に静かなので結構気に入っている。そこで棒茄子前でツラい時期ではあるけれども、「クレジットカードに全てを賭ける」と、さらにGPUを調達することにした。

もちろん某社と同じく緊縮予算であり、今回はドスパラで新品を再購入する余裕はない。少しでも予算を節約して家族への良心を抑えるべく、フリマで安かったAcer製品を調達することにした。

(二枚刺し構成にするならば同一品にした方が確実なのは当たり前だが、ここでもセオリーを無視してしまうワタシ)

環境再構築、そして…

さて気になるのは人工知能(Artificial Intelligence)が実行できなく前から、画面にノイズが入るようになっていたことだ。ドライバソフトウェアやハードウェア故障以外に、そもそも接続不良とか配線ミスという可能性もある。念のためにデスクトップPCの筐体を開け、特に問題なさそうかを確認してみた。

念のためにArc A770 GPUをいったん取り外してから再装着したら、GPU冷却ファンが、今までにない勢いで回転するようになった。「これがA770冷却ファンの本気か…」である。

ちなみに後になって分かったことだけれども、これは当方の接続ミスである。今まではPCIeスロットに無事装着されて、温度も含めたGPU稼働情報をWindowが収集(GPU側からデータ送信)できていた。それが接続ミスによりA770 GPU側では用心して、GPU冷却ファンをフル稼働させたという訳である。

逆に言えば、今まで物理的(ハードウェア的)には、特に問題なく接続できていたという訳である。拙宅の場合はデスクトップというよりも、机の前にある出窓に鎮座しているので『出窓PC』となる。今回の件で、ハードウェア的な接続に問題はないと分かって何よりだった。

ただし次のBIOSというかUEFI設定は驚くべき結果となっていた。なぜかiGPUがDisable –> Enableに変わっており、優先表示デバイスも内蔵グラフィックスになっていた。どうやらソフトウェア・アップデート作業の際に、ハードウェア設定まで書き換えられてしまったようだ。
(P40からA770に切り替える際、わざわざ設定変更&変更結果の確認までやったのだから間違いない)

「Intel… 恐ろしい子!」というところだろうか。道理でUbuntu 22.04 Linux環境まで影響を受ける訳である。

ちなみにAbove 4G、Resizable Bar、CSM周りの設定を再チェックしている時に、恐ろしいことに気がついた。

… 当方の第8世代Intel i5 8500チップがサポート対象に記載されていない。

思い返してみれば、少しでも予算をケチろうとして、Above 4G、Resizable Bar、CSM対応で最も安い… 古いCPUやマザーボードを調達した。たしかに我がASrock Z370 Taichiマザーボードでも設定可能だけれども、たしかBIOSはベータ版レベルだったような…

ともかく後はスムーズだった。Llama.cpp for SYCLで紹介されているIntelドライバのサイトを通じてドライバインストールを実施し、淡々と作業したらば無事に生成AI(4bit量子化版Command R plus 104B版)が動くようになった。

「これにて一件落着」である。

それに気になっていたGPU温度問題も、Llama.cpp&Command R+ を動かしていない時は48度と表示されている。精度は不明だけれども、ともかくGPU温度測定はプログラム的には正しく動作しているようだ。

しめくくり

以上の通りで、藪をつついて蛇を出してしまった件は無事解決した。まずは一安心、である。

それに勢いあまってIntel Arc A770 GPUを追加調達してしまったけれども、それも “ちょっとしか” 後悔していない。何しろファイルサイズ約64GBのLLMを動かしているので、ハードウェア資源が不足している。GPU処理性能は気にならないけれども、CPUメモリ(64GB)とGPUメモリ(16GB)では全く足りないのである。出力時はディスクアクセスが100%となってしまっている。

おまけにASRock Z370 Taichi & 第8世代Intel i5の時代はNVMeディスクをサポートしていない。NVMeディスクをサポートしているA730M搭載ノートパソコンの方が速いような気がするほどだ。

しかし壊れていないことが確実に分かっていたら、同じくドスパラが格安販売している同一GPUを購入すべきだったかも… 後悔役に立たず、である。

まあ後は野となれ山となれ。いずれ二枚刺しの稼働状況も報告させて頂くことにしたいと思う。

とりあえず今回は、この辺で。ではまた。

------
記事作成:小野谷静(オノセー)