![見出し画像](https://assets.st-note.com/production/uploads/images/61476400/rectangle_large_type_2_3b01d13548392452df2886f027321e0f.png?width=800)
MSI製ゲーミングラップトップにGPUが使える機械学習環境を構築する際のハマりどころ
表紙の画像は、最近気になっているAlphaZero.jlを、今回構築した環境で強化学習しているところのスクショです。
個人の機械学習環境というか、開発環境で重要なのは、画面のみやすさ、キーボードのうちやすさ、タッチパッドの使いやすさ、Linuxが使えることだと思っています。機械学習用途ならば、RAMが十分に積んであり、NVIDIA社製のGPUが使えることも重要になってきます。
特に、4k画面、15-inch以下、メモリ32GB以上、最新GPU搭載でkakaku.comで検索すると、MSIのゲーミングラップトップにたどり着きました。この機種です:MSI GS66 Stealth 11UH GS66-11UH-321JP。
https://jp.msi.com/Laptop/GS66-Stealth-11UX/Overview
まずは一日くらいかけてWindows上にWSL2とCUDAを入れてみたのですが、最終的には安定的にGPUで機械学習ができず、プロセスが殺されたり、Windows全体がクラッシュしたりしました。なお、参考にしたのはエヌビディアの佐々木さんの記事です。CUDA/WSL2/Windowsはプレビュー版なので、今後の完成形を期待しています。
https://qiita.com/ksasaki/items/ee864abd74f95fea1efa
ちなみに、Windows 11 (Insider) だとクラッシュ画面が青ではなく緑ですよね。
https://photos.app.goo.gl/VNLSNs496sJjDQeVA
そこで、やっぱり使い慣れているUbuntu Linuxをデュアルブートで入れることにしました。もっとも参考にしたのは、前世代機を機械学習環境化した先人のQiita記事です。
https://qiita.com/delete/items/2ee2a19f0e75d83313ac
WiFi設定
TLDR
# Step 1 - Download the Latest Git and Build-Essential packages
sudo apt update && sudo apt-get install -y git build-essential
# Step 2 – Download the Iwlwifi-Firmware.git repository
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
sudo cp linux-firmware/iwlwifi-* /lib/firmware/
# Step 3 – Create the Backported Iwlwifi Driver for your current setup
git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
cd backport-iwlwifi
make defconfig-iwlwifi-public
make -j4
sudo make install
特に今回のハマりどころはWiFiアダプターの設定でした。Ubuntuインストール中は、無線が使えなかったので、有線LANをつなげておいて、パッケージ更新ができるようにしました。インストールが終わって、Ubuntuにログインしてから、Intelの「Issues with Intel® Killer™ AX1650 In Debian*/Ubuntu* 16.04+」という記事を参考に、WiFiアダプターのドライバをビルドしてインストールできました。複数のやり方が書かれていたのですが、うまく行ったのはソースコードからビルドする方法だけでした。
しかし、実は他にも色々と試したので、どれが決定的にWiFi接続につながったのかまだわかりませんでした。なお、ブート時間が1分程度かかっていたところ、ブーツ時にWiFiアダプターのドライバが使えるように設定してあげたら、ブート時間が劇的に改善し、約15秒でログイン画面が出るようになりました。ブーツ時にWiFiアダプターのドライバが使えるように設定するコマンドは、上記のIntelのページにも書いてあるのですが、下記のとおりです。
update-initramfs -u
更に、順番が前後しますが、BIOSの設定で、Fast BootとSecure Bootはオフにしないと、WiFiアダプタの存在がLinuxに認知されないようです。このように、BIOS設定とドライバのインストールによって、WiFiは何とかなりました。
もう一点困っていたのは、ラップトップ内蔵のウェブカメラが使えなかったことです。しかしこれは単に、キーボードのショットカットでウェブカメラをオフにしていただけでした。それに気づいて、カメラをオンにしたらすんなり認識され、普通に使えるようになりました。これでウェブ会議も普通にできる状態になりました。
ということで、WindowsのWSL2でNnvidiaのGPU/CUDAを使おうとしましたが、うまく行かず、結局Ubuntuをデュアルブートして、ネイティブLinuxでMSIゲーミングラップトップGS66 Stealth 11UH GS66-11UH-321JPを使って機械学習に励む環境が出来上がりました。Windowsよりもサクサク動き、GPUを酷使しても、プロセスがメモリ不足で停止されることがあっても、Ubuntu Linuxがクラッシュすることは今のところありません。
この記事が気に入ったらサポートをしてみませんか?