過去記事 windows/Windows Subsystem for Linux

PC搭載のNVIDIAカードが Windows Subsystem for Linux 2から利用できるようになった

だが、それには現状 WindowsInsiderProgram に参加してOSのビルド番号を上げる必要がある。
具体的には https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-indexから
「WSL 2 は、Windows 10、バージョン 2004、ビルド 19041 以上」
(20.08)現行では無理なので「WindowsInsiderProgram」を使ってバージョンアップする.
*WindowsInsiderProgramは無保証です。問題が発生したら自分で解決する必要があります
*WindowsInsiderProgram に掲示された機能はいずれ一般向けにも反映されます。それまで待つのもいいかも
修正
現行の 1903 でも「KB4566116」をインストールして、OSビルド番号が「*.1049」以上ならWSL2を使えるみたい.
WindowsInsiderProgramに入らなくてもWSL2へのパスが開けた模様
https://support.microsoft.com/ja-jp/help/4566116/windows-10-update-kb4566116

WSL2向けnvidiaドライバ:https://docs.nvidia.com/cuda/wsl-user-guide/index.html

windows/WSL2/CentOS

Installing the latest builds from the Microsoft Windows Insider Program

参照windows#v0c95754

Installing the NVIDIA preview driver for WSL 2

https://developer.nvidia.com/cuda/wslよりCUDAドライバーを入手する.
上記URLの「Get CUDA Driver]リンクをクリックして、「NVIDIA Drivers for CUDA on WSL」ページから
windowsPCに搭載の NVIDIA カードの種類毎にドライバーを取得する。
ここではGeForceなカードを使っているので、「GEFORCE DRIVER」側を取得します。
2020y08m10d_131832099.png
「GEFORCE DRIVER」側の「DOWNLOAD NOW」リンクをクリックするとブラウザに新しいウィンドウが表示されます。

「NVIDIA Developer Program」にログインしていないと表示されるページのようで、ここでプログラムに
既に参加しているなら「Login」そうでないなら「Join now」で参加手続きを開始する
その後、元の「NVIDIA Drivers for CUDA on WSL」ページで再度「DOWNLOAD NOW」をクリックするとダウンロードが開始されます。

取得したファイルは「455.41_gameready_win10-dch_64bit_international.exe(553MB)」です。

っでこのドライバをインストールします
インストールの途中で選択肢が表れるが、
「GeForce Experience」が含まれない「NVIDIAグラフィックスドライバー」->高速で進めた.

Windows Subsystem for Linux 2を有効にさせてLinuxを乗せる

「ここに入力して検索」欄に「コントロールパネル」と入力して「コントロールパネル」を表示させ、
そこから「プログラムと機能」を選択する。表示された「プログラムと機能」の左縦メニューの「Windowsの機能の有効化または無効化」を選択します。
そこで「Windows Subsystem for Linux」と「仮想マシン プラットホーム」を有効にして「OK」ボタンを押下します。

2020y08m10d_140328066.png 2020y08m10d_145124184.png
この後再起動します。

正しく反映されたかを確認するため、
再起動後、「スタート」->「設定」->「更新とセキュリティ」から「Windows Update」の「更新の履歴を表示する」を開き
更新の履歴ツリーの「その他の更新プログラム」を展開します。
ここに「Windows Subsystem for Linux Update...」があればいいのですが、、、
2020y08m10d_150231767.png
このように表示がなければ「Windows Update」画面にて「詳細オプション」を開きます。
ここで「Windowsの更新時に他のMicrosoft製品の更新プログラムを受ける」を有効にして
2020y08m10d_150356304.png

「Windows Update」画面にて「更新プログラムのチェック」リンクを押下します。
2020y08m10d_150452216.png
ここではこれが正解のようで、必要なパッケージがダウンロードされました。
2020y08m10d_150319103.png

その後、再度「更新の履歴を表示する」を開くと1件追加され、目的のパッケージがインストールされました。
2020y08m10d_150736655.png

PowerShellを立ち上げてLinuxカーネルのバージョンを確認します。

PS C:\Users\supervisor> wsl --update --status
Linux 用 Windows サブシステムの最終更新日: 2020/08/10
WSL の自動更新が有効になっています。
カーネル バージョン: 4.19.121.1
 
PS C:\Users\supervisor>

WindowsOSなのですが、WSL2を介して、kernel[4.19.121.1]を内部に持っていることが分かる。

次にLinuxをインストールします

Linuxをインストール

windowsの「Microsoftストア」を開きます。手始めに検索欄で「Linux」と実行すると対象がリストアップされます。
「CentOS」を入力したら有料だった...いやそれ以上に怪しい...なのでubuntuを選びました

ここではUbuntu20.04 LTSを選択しました。右の「入手」ボタンを押下します。
2020y08m10d_155324773.png

インストールが完了すると、「スタート」のメニューに「Ubuntu 20.04 LTS」が登録される。これを選択して起動させると
2020y08m10d_164837491.png
と表示され、Ubuntu20.04LTSの「アカウント」作成並びにそのパスワードの定義が行われる。

*これはインストールしたUbuntu20.04LTSのアカウントであって、windowsPCのアカウントではない。
あえてwindowsPCのアカウントと揃えも構わない
ここではこんな感じにした
2020y08m10d_165218060.png

PowerShellからWSL2で動いているかを下記コマンドで確認できます

PS C:\Users\supervisor> wsl.exe --list -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2
 
PS C:\Users\supervisor>

Setting up CUDA Toolkit

っでCUDAライブラリをインストールします。
インストール方法はhttps://developer.nvidia.com/cuda-downloadsの方法でいいみたいだが、最後のインストールパッケージ選択が大事な様子.

作ったUbuntu20.04LTSから下記を実行します

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda-toolkit-11-0              **「cuda」とは指定しない**

終わって/usr/localを確認すると

illya@f:~$ ls -ld /usr/local/cuda*
lrwxrwxrwx  1 root root    9 Aug 10 19:22 /usr/local/cuda -> cuda-11.0
drwxr-xr-x 15 root root 4096 Aug 10 19:22 /usr/local/cuda-11.0
illya@f:~$

となる。

っが、、cuda-11.0ではなくもう一つ古いcuda-10.1を使いたい
その場合は下記のように

wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-ubuntu1804-10-1-local-10.1.243-418.87.00_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.243-418.87.00_1.0-1_amd64.deb
sudo apt-get install cuda-libraries-dev-10-1

っで取り合えず Gautomatch を動かしてみる

illya@f:/tmp$ ldd ./Gautomatch_v0.56_sm30-75_cu10.1
        linux-vdso.so.1 (0x00007ffc1cf0d000)
        libnpps.so.10 => /usr/local/cuda-10.1/targets/x86_64-linux/lib/libnpps.so.10 (0x00007f201cbc0000)
        libcufft.so.10 => /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcufft.so.10 (0x00007f2014586000)
        libcublas.so.10 => /lib/x86_64-linux-gnu/libcublas.so.10 (0x00007f20107eb000)
        libcurand.so.10 => /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcurand.so.10 (0x00007f200c78a000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f200c77f000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f200c75c000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f200c754000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f200c573000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f200c424000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f200c409000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f200c217000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f201d653000)
        libnppc.so.10 => /usr/local/cuda-10.1/targets/x86_64-linux/lib/libnppc.so.10 (0x00007f200bf9c000)
        libcublasLt.so.10 => /lib/x86_64-linux-gnu/libcublasLt.so.10 (0x00007f200a0f6000)
illya@f:/tmp$
illya@f:/tmp$ ./Gautomatch_v0.56_sm30-75_cu10.1 | head
***************************************************************************************************
Version:       ./Gautomatch_v0.56_sm30-75_cu10.1 v0.56, updated on 2017-07-30
Author:        Kai Zhang@MRC Laboratory of Molecular Biology
Contact:       kzhang@mrc-lmb.cam.ac.uk
Description:   This is a GPU accelerated program for fully automatic particle picking.
Note:          Still under development, to be released soon ...
***************************************************************************************************
Usage:
         ./Gautomatch_v0.56_sm30-75_cu10.1 [options] <micrographs>
 
illya@f:/tmp$

っとなる

削除

インストールしたものを削除するには、「スタート」->「設定」から「アプリ」を開きます。
左縦メニューの「アプリと機能」を選び、その右側に存在する「Ubuntu 20.04 LTS」をクリックして、「アンインストール」を選択します。
2020y08m11d_050602774.png


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2020-09-04 (金) 12:35:54 (85d)