現在大学で機械学習による材料開発を本業としている。機械学習の手法としてGPR(ガウスプロセス回帰)というものがあり、これをよく使用する。GPRは種々のカーネル関数と組合わせて使用することが多く、カーネル関数によってはかなり計算時間がかかる。中でもARD(Automatic Relevance Determination:関連度自動決定)カーネルというものがあり、回帰性能は高いがその分計算時間がかかる。データの次元数(説明変数の数)よりもデータ点数の影響が大きく、データ点数が増えるとその二乗で計算時間が増大していく。データ点数が1000とか2000とかになってくると、それなりに高性能なPCを用いても1回の計算だけで数時間必要となる。
通常の機械学習では、Scikit-learnというライブラリを使用することが多く、このScikit-learnによってGPRを計算する。最近の機械学習はニューラルネットワークを使用するものが多く、ニューラルネットワークの計算ではGPUが威力を発揮する。このためGPR製造メーカーのNvidiaの株価総額が世界一になったりした。しかしScikit-learnはGPUによる計算に対応していないため、CPUだけで計算し、時間がかかる。GPRの計算をGPUで行うためにはScikit-learnに加えてGPyTorchなどを使用することで計算可能となる。
実際にGPyTorchをインストールしてGPUを搭載した大学の共用PCを用いてGPRを計算させてみると、劇的に早くなった。ざっと10倍くらいのイメージだろうか。そこで、自分専用にGPUを搭載したノートPCを大学で購入してもらうことにした。GPU搭載の個人用PCというとどうしてもゲーミングPCというイメージになる。今回は、DellのゲーミングPC、G16 7630を購入した。GPUはNvidiaのRTX GeForce4070とした。
現在このPCの立上げをしているのだが、結果的に初期不良があったようで非常に苦労した。以下、その苦労の経緯を簡単に記載する。
まず動作確認のために、GPUを使用しないような計算をさせてみた。問題なく実行でき、性能は従来のPCより高いので高速に実行できる。次にメモリに負荷のかかるような計算をさせてみた。そうすると、計算途中で画面が揺れてブルーバックのエラーが発生する。下は実際の画面。

VideoSchdulerInternalErrorと記載されているため、ネットで色々調べるとGPUのグラフィックドライバーに起因するエラーであるようなことが記載されている。まだGPUは使ってないんだけど・・と思ったものの、とりあえずグラフィックドライバーをupdateしてみた。しかし全く改善しない。
Windows11のupdateやDellの各種ドライバー等もupdateしたが、これも効果なし。しかしデバイスマネージャー上からGPUのドライバを無効にするとエラーが発生しなくなったため、GPUのドライバが原因であることははっきりした。
そこで、Dellのサポートにその旨伝えたところ、「GPUに起因するエラーだからNvidiaに相談して」というまさかの丸投げ回答。仕方なくNvidiaのサポートとチャットでやりとりすることにしたが、なかなか繋がらない。繋がっても英語サポートで、こちらで日本語を英語に翻訳してからでないとやりとりできない。なかなかフラストレーションが蓄積する状況が続き、NvidiaからはWindows11の再インストールを要求された。仕方なく再インストールして、更にWindows11、Dell関連ドライバ、GPUドライバをupdateして、エラーの再現試験をすると、やはり再現した。この段階でようやくNvidiaはGPUのハードウェア上の問題であろうとの見解をくれた。
そこでその結果を今度はDellサポートに連絡するが、ここでまた状況の全説明を求められる。2度手間であり、勘弁して欲しい。それでも1つ1つ説明して、ようやくDellはGPUハードウェアの問題であることを認めて、交換に入ることになった。
ここまで来るのに1ヶ月程度を費やしている。これから交換して再度各種設定等やっているともう1ヶ月くらいかかるかもしれない。恐らく今回はGPUの初期不良だったのだろうが、初期不良に当たるとこんなに苦労するのだな、ということを思い知らされた1月となった。
#GPU初期不良 #Dellサポート

コメント