【人柱記録】win10HomeEdition⇒win11でGPU環境構築！【wsl2+ubuntu】

# 環境と抱えていた問題
- ホストos : Windows10 Home Edition
- WSL2 + Ubuntu20.04  
- GTX 1080ti
  
という環境でpytorchでGPU動かしたかったのですが、Windows10 "**HomeEdition**"においてはwsl上でそもそもGPUが動かないし、環境構築の時点で上手くいきませんでした。(nvidia-smiが動かなかったり、gpuの動作が確認できなかったり・・・)  
というのもwin10 Proでないと、wsl上でgpuを動かせるバージョンまでアップデートできなかったためです。(2021/10/15の段階です)

同じような環境で困ってますみたいな記事をネットで頑張って探しましたが見つからなかったので、やったことを雑にまとめて書いておきます。

# やったこと・解決策
解決のために行ったことはwin11へのアップデートです。(開発版で不安定なので自己責任で)


大雑把に分けて3つ。
1. windows insider programの登録
2. windows11アップデート要件の確認
3. win11へのアップデート
## 1.windows insider programの登録
一つ目のwindows insider programの登録は、現段階でwin11にアップデートするために必要な作業です。こちらのページを参考に進めていけば簡単です。
https://pc-karuma.net/install-windows-11-insider-preview/  

pcの設定->更新とセキュリティ->windows insider programからinsider programに登録が進みます。~~devチャネル~~　betaチャネル(推奨,2021/10/21追記を見てください)を選択できれば事がスムーズに進むのですが、筆者のチャネル選択欄はリリースプレビューチャネルの一つしかありませんでした。

**※※2021/10/21追記**
ここで紹介したリンク先のページ内容通りにdevチャネルを選択する必要はなく、betaチャネルを選択してもwin11へのアップデートは可能です。beta版はdev版と比較して十分にテストされ安定性がより保証されている(らしい)のでbetaチャネルを選択した方が丸そうです。
**※※**

## 2.windows11アップデート要件の確認
devチャネルが選択できない場合はwin11へのアップデートのための要件が揃っていない可能性があります。  

**※※2021/10/18追記**
よく調べたらbetaチャネルでもwin11へのアップデートが可能だそうです。
より安定した機能を使うためにはbetaチャネルのほうが安全かも知れません
参考ページ->https://forest.watch.impress.co.jp/docs/news/1348402.html
筆者はwin11にアップデート後にこれを知ったのでdevチャネルからbetaチャネルに変更しようとしましたが、betaチャネルのボタンがグレーアウトして変更ができませんでした。
一旦win10に戻してからbetaチャネルを選択してアップデートし直してみようと思います。win11にアップデートして10日以内であればwin10に簡単に戻せます。方法については[こちら](https://www.pasoble.jp/windows/11/return-windows10.html#:~:text=Windows10%20%E3%82%92%20Windows11%20%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89,%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E8%A6%81%E4%BB%B6%E3%81%A7%E3%81%99%E3%80%82)のページが参考になります。
**※※**

自分の環境で足りない要件が何なのかを確認するためにmicrosoftのwin11のページ下部にある互換性の確認という項目から「PC正常性チェックアプリのダウンロード」をします。
https://www.microsoft.com/ja-jp/windows/windows-11
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553897/604f92e7-f935-83d6-8921-f40637995bc1.png)

このアプリを起動してアップデート要件を満たしているかを確認しましょう。
筆者の場合だと、「"TPM2.0"になってないからアプデできません」みたいな感じでした。これはbiosの設定で無効になっているか、あるいはそもそも使っているマザーボードがTPM2.0に対応していないかどちらからしいです。

幸い筆者のASUSのマザーボードはTPM2.0に対応しており、以下のページの指示に従ってbiosから設定することが出来ました。
https://www.asus.com/jp/support/FAQ/1046215/

TPM2.0に設定を変更したことでwin11へのアップデート要件を満たし、さらにwindows insider programのチャネルの設定項目が増えました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553897/e2853603-11fb-7a52-d4d4-5b1c92603f4e.png)

~~devチャネル~~　betaチャネル(推奨)を選択すると、windowsアップデートの項目がこんな感じになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553897/edd161ee-e4e6-3373-95f6-9495029ad2f3.png)

ここまでいけばあとはダウンロード後にいつもの手順でwindowsアップデートを実行するだけです！！

# 解決へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553897/afc3abc3-fb06-9306-da30-828e306b6727.png)

win11になったことでwsl+ubuntu環境でgpuのためのnvidia関連のパッケージの導入でエラーを起こすことなく、pytorchの動作確認まで無事完了しました。
cuda toolkit,nvidia driver,pytorchの導入などについては以下の記事が非常に参考になります。
https://takake-blog.com/wsl-nvidia-cuda/

# まとめ、感想
以上雑に書いてきました。win10home editionはpro版と比較して出来ないことが多いです(例えばリモートデスクトップ,Hyper-Vなど)
不都合が多く困っていたところにwin11へのアップデートという解決策が出来たことはある種の救いでしたが、同時にアップデートによって生じる環境の不安定化も大きな懸念事項でした。いまのところ正常に動いてくれていますし、twitterでよく見かけるゲームパフォーマンスの低下なども気になるほどではないんじゃないかと思います。UIも10と比較してスッキリした印象があります。
   
最後に**win11へのアップデートは自己責任で**行って欲しいということを今一度確認しておきます。環境がぶっ壊れても筆者は責任を負えません。
同じ環境で沼っている人の解決策の候補として一助になればなと思います。

**※※2021/10/21　追記**
win11beta版にしておけばアップデート後に製品版への変更も可能です。設定にてinsider programへの参加を取り消して再起動することで製品版にできます。
win11にアップデートして数日経ちますが、今のところ動作に関する不具合は起きていません。ゲームパフォーマンスに関しても同様で、valorantなどフレームレートが気になるようなゲームに関してもスムーズなままで体感的なところですが全く差は感じていません。