CUDA in WSL2を試す [リベンジ]

この前のWin11入れてみた記事の続き。

CUDA in WSL2については、以前も挑戦したのだけど、残念ながらHWエンコード用のモジュールが用意されておらず、NVEncを動作させることはできなかった。

Windows11ではWSLgがPreview版でなくでも利用可能になるうえ、最近WSL2でHWエンコードができるようになったらしいと聞いて、再チャレンジすることにした。


CUDA in WSL2の導入



0. 環境



今回の環境は、下記の通り。

Win11 x64 22000
Core i9 7980XE
RTX2070 + GTX1060



1. WSL2を実行する環境整備



まず、WSL2用の専用のCUDAドライバをWindows11にインストールする。専用ドライバは、このページからダウンロードできる。

ダウンロードしたら、あとは普段のNVIDIAのドライバインストールと同じ流れでインストールするだけで完了。

次にWSL2のカーネルのバージョンを確認する。4.19.121以降必須、5.10.16.3以降推奨とのこと。

wsl --status


Windows11_20210926_WSL2_04.png

ここでバージョンが古い場合は、Windows Updateで「Windows更新時に他のMicrosoft製品のUpdateを受け取る」にチェックが入っていることを確認し、Windows Updateの更新チェックをしてインストールするとよいとのこと。

Windows11_20210926_WSL2_00.png



2. LinuxをWSL2にインストール



インストール可能なLinux OSは下記コマンドで確認できる。

wsl --list --online


Windows11_20210926_WSL2_01.png

ここではUbuntu 20.04を選択した。

wsl --install -d Ubuntu-20.04


インストールが完了すると別ウィンドウでUbuntu 20.04が起動する。

Windows11_20210926_WSL2_02.png

ひとまず、Ubuntuを更新しておく。

sudo apt update && sudo apt upgrade





3. NVEncのインストールと実行



あとはNVEncCのパッケージをダウンロードしてインストールするだけ。なお、そのままでWSL2で動作させるにはNVEnc 5.40以降が必要(5.40より前バージョンではひと手間かかってしまう)。

sudo apt install ./nvencc_5.40_Ubuntu20.04_amd64.deb


以前は、/usr/lib/wsl/libに HWエンコードに必要な libnvidia-encode.so.1 や HWデコードに必要な libnvcuvid.so.1 がなかったので動作させられなかったが、今回はちゃんと存在していて、無事エンコードできることを確認。素晴らしい!

Windows11_20210926_WSL2_06.png

2枚目のGPU(GTX1060)でも動作するかな?ということでテスト(-d 1を追加)。これも問題なく正常動作。

Windows11_20210926_WSL2_07.png



というわけで前回は動作するところまで持っていけなかったけど、今回は無事動作させることができた。また、パッケージを作成しているおかげでCUDAをインストールしてコンパイルみたいな手間がなくなり、NVEncCのインストールも非常に簡単に可能となっている。

WSL2は本当にすぐに起動できるし、手軽にLinux版のテストができるようになって大変ありがたい。ただ、どうしてもそれなりのメモリは喰うので、もっとメモリを載せたくなるのが問題。

このPCはAlderlake(i9 12900K)に更新予定なので、そのときはメモリを64GB載せたいなあ、と思いつつ、DDR5はどうせ高いんだろうなと思うとやっぱり32GBどまりになってしまうかもしれない。
スポンサーサイト



コメントの投稿

非公開コメント

プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

rkmppenc
- Rockchip系SoCのhwエンコーダ

x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR