WSL2 + Quarto + R(torch)で機械学習環境をつくる
1. はじめに
1.1. この記事の趣旨
この記事は、GNU R(以下、R)の torch
パッケージを用いた機械学習の解析環境を、Windows Subsystem for Linux (WSL) 2 + Visual Studio Code(VS Code)+ Quartoでセットアップする手順をまとめたものです。これまで使用していた解析環境と異なる設定となったため、備忘録を兼ねて書きました。この記事では、Windows側でVS CodeとGitの設定が完了しており、Linuxの基礎知識があることを前提としています。そのあたりの設定方法や参考資料は、以前に他の記事に記載しました。なお、この記事では依存関係のトラブルを防ぐためにUbuntuをクリーンインストールします。
1.2. 背景
私は、約1年前に博士号を取得したことをきっかけに、最近転職を決めました。新しい職場では医療系ビッグデータの解析をおこなうため、その手法を学習するための環境を構築することにしました。解析に使用する言語は使い慣れているR、機械学習のフレームワークはRで動作するtorchとしました。臨床研究をおこなう時には解析環境の再現性を意識してコンテナー技術を使用するのですが、今回は仕事で使用するのみで解析環境を公開する予定がないため、WSL2-Ubuntuに直接ソフトウェアをインストールすることにしました。
2. WSL-Ubuntuを設定する
2.1. 参照したドキュメント
2.2. WSLをアップデートする
wsl --update
2.3. 現行のWSL2-Ubuntuを削除する
wsl --shutdown
wsl --unregister Ubuntu
2.4. WSL2-Ubuntuをインストールする
2.4.1. 最新のLTSをインストールする
wsl.exe --install Ubuntu
2.4.2. Linuxユーザー名とパスワードを設定する
Microsoft Learnの該当ページを参照してください。
2.4.3. タイムゾーンを変更する
sudo timedatectl set-timezone Asia/Tokyo
2.5. WSL2-UbuntuのDNS設定を変更する
2.5.1. DNS設定ファイルの自動生成を停止する
echo "[network]" | sudo tee -a /etc/wsl.conf
echo "generateResolvConf = false" | sudo tee -a /etc/wsl.conf
2.5.2. 既存のresolv.confを削除しシンボリックリンクを解除する
sudo rm /etc/resolv.conf
2.5.3. 新しい /etc/resolv.conf を作成し、Google Public DNSを設定する
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
2.6. apt関連の設定を変更する
2.6.1. aptパッケージのリポジトリを日本のミラーサーバーに変更する
sudo sed -i 's/\/\/archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
sudo sed -i 's/\/\/us.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
sudo sed -i 's/\/\/fr.archive.ubuntu.com/\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list
sudo apt -y update
2.6.2. aptパッケージをHTTPS経由でインストールできるように設定する
sudo apt -y update
sudo apt -yV install ca-certificates curl gnupg lsb-release apt-transport-https
2.6.3. WSL2-Ubuntuがクリップボードにアクセスできるようにする
sudo apt -yV install xclip
2.6.4. VS Codeの拡張機能「R」の依存パッケージをインストールする
sudo apt -yV install libxml2-dev
2.6.5. Rパッケージのビルドに必要なaptパッケージをインストールする
sudo apt -yV install libssl-dev libcurl4-openssl-dev make gcc g++ liblapack-dev libblas-dev gfortran
2.6.6. 不要なaptパッケージを削除する
sudo apt -y purge wolfram-engine libreoffice* thunderbird*
sudo apt -yV autoremove
sudo apt autoclean
2.7. WSL2-Ubuntuのシステムを更新する
sudo apt -y update
sudo apt -yV upgrade
sudo apt -yV dist-upgrade
sudo apt -yV autoremove
sudo apt autoclean
sudo shutdown -r now
3. WSL2-UbuntuでGitを使用できるようにする
3.1. 参照したドキュメント
3.2. ユーザー名とメールアドレスを設定する
git config --global user.name "username"
git config --global user.email "e-mail@hogehoge.com"
3.3. SSHキーを生成し、クリップボードにコピーする
cd
ssh-keygen -t ed25519
cd .ssh
cat id_ed25519.pub | xclip -selection clipboard
3.4. GitHubのアカウントにSSHキーを登録する
GitHub Docsの該当ページを参照してください。
3.5. 必要なGitHub上のリポジトリをクローンする
GitHub Docsの該当ページを参照してください。
4. WSL2-UbuntuでGPUを使用できるようにする
4.1. 参照したドキュメント
- CUDA on WSL User Guide (NVIDIA Docs)
- Enable NVIDIA CUDA on WSL (Microsoft Learn)
- Installation (torch vignetts)
4.2. Windowsに最新のNVIDIAドライバーをインストールする
公式からインストールしてください。
4.3. 古いNVIDIAのGPGキーを削除する
sudo apt-key del 7fa2af80
4.4. UbuntuにCUDA Toolkitをインストールする
4.4.1. CUDAリポジトリのピンファイルをダウンロードする
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
4.4.2. CUDA Toolkit 11.7のパッケージファイルをインストールする
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
4.4.3. NVIDIAのGPGキーリングファイルをコピーする
sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
4.4.4. パッケージファイル(CUDAリポジトリを含む)をアップデートする
sudo apt update
4.4.5. CUDAをインストールする
sudo apt -yV install cuda
4.4.6. 不要なパッケージとファイルを削除する
sudo apt autoremove
sudo apt clean
4.5. CUDAに対応したcuDNNをインストールする
4.5.1. WindowsにダウンロードしたインストーラーをWSL2-Ubuntuにコピーする
cp /mnt/c/Users/Username/Downloads/cudnn-local-repo-ubuntu2204-8.9.5.29_1.0-1_amd64.deb ~/cudnn-local-repo-ubuntu2204-8.9.5.29_1.0-1_amd64.deb
4.5.2. cuDDNのGPGキーリングファイルをコピーする
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.5.29/cudnn-local-535C49CB-keyring.gpg /usr/share/keyrings/
4.5.3. インストーラーを実行する
sudo dpkg -i ~/cudnn-local-repo-ubuntu2204-8.9.5.29_1.0-1_amd64.deb
4.5.4. 一時ファイルを削除する
rm ~/cudnn-local-repo-ubuntu2204-8.9.5.29_1.0-1_amd64.deb
5. WSL2-UbuntuにQuartoをインストールする
5.1. 参照したドキュメント
5.2. Quarto CLIをインストールする
wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.3.450/quarto-1.3.450-linux-amd64.deb
sudo dpkg -i quarto-1.3.450-linux-amd64.deb
rm quarto-1.3.450-linux-amd64.deb
6. WSL2-UbuntuにRをインストールする
6.1. 参照したドキュメント
6.2. RリポジトリのGPGキーを取得する
sudo wget --quiet https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc -O- | gpg --dearmor -o /usr/share/keyrings/r-archive-keyring.gpg
6.3. Rリポジトリ(4.X系)を/etc/apt/sources.list.d/に追加する
echo "deb [signed-by=/usr/share/keyrings/r-archive-keyring.gpg] https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" | sudo tee /etc/apt/sources.list.d/r.list
6.4. r-baseをインストールする
sudo apt -y update
sudo apt -yV install r-base
6.5. Rパッケージをインストールする
6.5.1. パーソナルライブラリのディレクトリを作成する
mkdir -p ~/R/x86_64-pc-linux-gnu-library/4.3
6.5.2. Rを起動する
R
6.5.3. パーソナルライブラリのパスを設定する
lib_path <- "~/R/x86_64-pc-linux-gnu-library/4.3"
6.5.4. Quarto用のRパッケージをインストールする
install.packages("quarto")
install.packages("languageserver")
6.5.5. バージョン管理用のRパッケージをインストールする
install.packages("checkpoint")
6.5.6. Rを終了する
q()
以上で、WSL2 + VS Code + Quartoで torch
により機械学習をおこなう環境が整いました。なお、torch
はQuarto用のディレクトリを準備してから、Rのパッケージのバージョン管理下で設定します。今後、簡単なサンプルデータの解析とともに記事にまとめる予定です。
Discussion