見出し画像

でじたる箱庭計画 環境構築編 その1

環境構築編(忘備録)

でじたる箱庭で3D gaussian Splattingを活用することを考えているので、3D
 Gaussian Splattingの処理ができるPC環境を構築する。

Windowsは苦手なので、WindowsにWSLを導入してLinux上に環境を構築することを目指す。

基本的な環境の構築

1. WSLの準備

WSL上のアプリを外部からアクセスすることを考えると、WSLのネットワークをNATとしてポートフォワーディングするより、bridgeとしてWSLにも個別のローカルネットアドレスを持つのが使い勝手が良さそうなので、今回はbridgeを採用した。ネットワーク構成をbridgeとするためには、Hyper-V で外部との通信用の仮想スイッチを作成する必要があった。下記を参考にさせていただいた。

2. WSLのinstallと環境設定

今回はUbuntu22.04から構築することにした。
wsl --install Ubuntu-22.04
--------- .wslconfigの案 ----------
[wsl2]
networkingMode=bridged # ネットワーク構成はBridge
vmSwitch=WSL_external # 仮想スイッチの名前
dhcp=true
#####
memory=56GB # WSL側で多くのメモリを使いたいので
swap=0 # WSLではswapファイルを使わない
-----------以上 -----------
---------- wsl側の/etc/wsl.confの案 ----------
[boot]
systemd=true
[network]
hostname = wslのホスト名
[interop]
appendWindowsPath = false # Windowsの環境変数を引き継がない
[user]
default=WSLでデフォルトで使うユーザ名
-----------以上 -----------

WSL起動時の設定
WSL ターミナルを起動しておかないとタイムアウトで WSL インスタンスが自動停止してしまう対策と、Windwos起動時にWSLを起動してバックグラウンドでアプリを動かすために、タスクスケジューラでWindows起動に設定用のバッチファイルを実行することとした。
タスクスケジューラに登録するバッチファイルの例
---------- startup.batの例 ----------
powershell -ExecutionPolicy Unrestricted -File c:\wsl\start-wsl.ps1
----------------------------------
バッチファイルから呼び出す
---------- start-wsl.ps1の例  ---------
# Windows11起動時にWSLを起動して自動終了しないようにする
# タスクスケジューラで管理者権限で起動する
$scr= New-Object -ComObject Shell.Application
$scr.ShellExecute("wsl","","c:\wsl","",0)
---------------------------------------

下記参考にさせていただきました。


3. 開発環境とネットワーク関連ツールのインストール

以降のインストールや操作確認に必要なパッケージのインストール
sudo apt install build-essential 
CUDA toolkitのインストールには gccが必要なのでアプリ構築の基本パッケージをインストールする。
sudo apt install net-tools
ネットワークの動作確認のツールなどもインストール

4. その他の環境構築

ssh 
外部のPCやMacからwslに接続するために利用する。

smaba  
WSLではWindowsのドライブがマウントされて、Windowsとのファイル共有が可能であるが、マウントされたWindowsのドライブは極めて低速なので、ネットワーク経由でのファイル共有の方が実用的なので、sambaを導入した。
sambaであればローカルネット上のPC、Macともファイル共有ができる。

mDNS
ローカルネット上のPC,Macからwslへのアクセスやwslからローカルネット上のPC、Macへのアクセスを行う場合の名前解決をするためにAvahiを採用した
これにより、ホスト名.localが使える。
sudo apt install -y avahi-daemon

日本語化
日本語の言語パックをインストール
sudo apt install language-pack-ja -y
日本語ロケールを設定
sudo update-locale LANG=ja_JP.UTF8
マニュアルの日本語化
sudo apt install manpages-ja manpages-ja-dev -y

WSLからGUIを使う準備
WSL2ではWSLgが使えるので特に準備することなく、X11-appsなどが使える。
WSLgの日本語化については下記を参考にさせtいただいた。

CUDA ツールキット
cudaのバージョンは、NerfStudioの推奨が11.8なので、11.8を採用することとした。

上記から
cuda tool kit → Linux→ x86_64 → WSL-Ubuntu → 2.0 → runfile(local)で手順通りにrunfileをダウンロードして実行。gccがインストールされてないとrunfileがエラーになる。
なお、当方の環境ではrunfile以外はインストールに失敗した。(ご参考)

また、Windowsにドライバーをインストールするので、wsl側ではCudaToolKitのみインストールする。

ここまでは、WSL上でDockerを使う場合も、WSLに直接NerfStudioをインストールする場合も同じので、ここまで環境構築したwslは一旦バックアップを作成しておいて、以降の試行錯誤に備えた。
例えば
wsl --export Ubuntu-22.04 d:\wsl\stock\backup.tar

今回はここまで、次回はwsl上にNerfStudioのインストール


この記事が気に入ったらサポートをしてみませんか?