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

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

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

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

NVEnc 5.40

主にWindows11対応関連の更新。

・想定動作環境にWindows11を追加。
・Windows11の検出を追加。
・Windows11のWSL2での実行に対応。
こちらの記事で実際の使用方法とかを紹介。

・スレッドアフィニティを指定するオプションを追加。(--thread-affinity)
Alderlakeに向けてPerformanceコアでの実行、Efficiencyコアでの実行を指定可能としたつもり。もちろん、実機未発売のため、未検証なのでとりあえず仕組みを作って準備しているという感じ。

実機が手に入ったら意図通り動くか実際に試してみたい。

・ログの各行に時刻を表示するオプションを追加(デバッグ用)。(--log-opt addtime)



ダウンロード>>
ダウンロード (ミラー) >>

NVEncCのオプションについてはこちら。
NVEncCオプション一覧>

ソースはこちら>>


NVEnc 5.39

5.38の不具合修正。おさがわせしました。

・5.38で--check-hw, --check-featuresが動作しなかったのを修正。
NVEnc 5.38ではGPUのNVENC関連の情報取得のためのエンコードセッションをいったん解放して同時セッション数の上限に引っかかからないようにしたのだけど、そのときに--check-hw, --check-features周りで別途対応が必要なのを忘れてしまっていた…。

Aviutlの設定画面でNVEncがグレーアウトにしたままとなってしまっていた(--check-hwの結果を見ているので)が、これも解消。



ダウンロード>>
ダウンロード (ミラー) >>

NVEncCのオプションについてはこちら。
NVEncCオプション一覧>

ソースはこちら>>


QSVEnc 6.03

English change log and binaries>>

起動速度をわずかに高速化したり、そのほか不具合の修正など。

ffmpegOut 0.09

・自動フィールドシフト(afs)タイムコード出力に対応。
要望いただいた機能の追加。このタイムコードは出力された動画ファイルには反映されていないため、そのままでは音声とずれてしまうので注意。

・音声のパイプ渡しを実装し、一時ファイルを不要とする。
これまでffmpegOutの音声処理は、ffmpeg内蔵の音声エンコーダを使用する場合でも、一時ファイル(wav)を出力して、それを読み込んでエンコードするという形となっていた。

ただ、個人的に一時ファイルを作るのは時間がかかるので好きではないし、一時ファイルを作るとwavファイルサイズの上限に引っかかったりして問題が生じることもあるので、音声のほうも映像同様にパイプ渡しするようにした。設定画面の「ffmpegに直接転送する」で有効になる。

基本的にはQSVEnc/NVEnc/VCEEncの実装の使いまわしだが、コマンドの生成のところなどをffmpeg向けに少し変えて実装した。

・音声のパイプ渡しを使用するよう、プリセットを更新。



ダウンロード>>
ダウンロード (ミラー) >>

ソースはこちら>>


NVEnc 5.38

いろいろな問題点の修正がメインです。

・マルチGPU環境で同時session数の上限に達していないのにエラーが出てしまうのを回避。
ご指摘いただいた問題の修正。

・--vpp-padの左右が反対になっていたのを修正。
こちらもご指摘いただいた問題の修正。

・--vpp-smoothのfp16版の高速化。
RTX2070で10%高速。

・音声トラックにbitstream filterを適用するオプションを追加。(--audio-bsf)
要望のあった機能の公開。

・5.19から--caption2assが使用できなかったのを修正。
ご指摘いただいた問題の修正。



ダウンロード>>
ダウンロード (ミラー) >>

NVEncCのオプションについてはこちら。
NVEncCオプション一覧>

ソースはこちら>>


CheckBitrate 0.04

・Linux環境への対応。
Windows版は更新なし。

LinuxでNVEncやQSVEncを動かしたときにビットレート分布を見たい時があったので、CheckBitrateもLinuxに対応させた。ついでにパッケージをgithubに置いておいたので、使いたい人がいるかはわからないけど、もしいればどうぞ。

いつも通り、パッケージはGithub Actionsで自動生成している。一度設定を作ればあとは勝手にやってくれるのでとても便利。



ダウンロード>>

ソースはこのへん。

ffmpegOut 0.08

・RGBA出力機能の追加。
Mr-Ojii 様にpull requestいただいた機能。機能をまるごと実装・pull requestいただき、誠にありがとうございました!

RGBA出力によりalphaチャネルを持たせた状態での出力が可能に。utvideoのrgba対応などで出力でき、Ut Alpha Video Playerなどで再生できる。

・OSバージョン情報の取得を改善。
Windows 10でもWindows 8などと出てしまっていたので、ちゃんとWindows 10と表示できるように。x264guiExなどからの移植。

・プリセットを更新
- utvideoのプリセットにrgba出力を追加。
- av1エンコード用のプリセットを追加。
- 他のプリセットを最近のffmpegに合わせて更新。



ダウンロード>>
ダウンロード (ミラー) >>

ソースはこちら>>


QSVEnc 6.02

English change log and binaries>>

・VPLを2021.6に更新。

・VPLの実装を使用して、利用可能なモードを列挙する--check-implを追加。

・--vpp-resize lanczosxの最適化。
11700Kで50%高速化。
lanczosで使用するsin関数をnative_sin関数に置き換えることで、精度はやや低いがハードウェアの高速なsin関数が呼ばれるようにした。

・--vpp-smoothの最適化。
11700Kで25%高速化。
fp16がOpenCLでサポートされている場合、これを活用してShared Local Memoryの使用量を12.25KB→7.25KBに削減することで高速化。いわゆるOccupancyが上がってEUの稼働率が上がることによる。

・--vpp-knnの最適化。
11700Kで約2倍高速化。冗長な処理を削除して高速化した。

・OpenCLフィルタのパフォーマンス測定用のオプションを追加。(--vpp-perf-monitor)
あくまで測定用なので、常用は非推奨。フィルタごとに同期をとって処理時間を測定するので、GPU使用率が低下しやすく、全体の処理速度は低下してしまうので注意。

・音声にbitstream filterを適用する--audio-bsfを追加。



QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。

QSVEncBenchmark.zipはベンチマーク用です。(重いので注意)。run_benchmark.batをダブルクリックで実行です。

QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>

ソースはこちら


VCEEnc 6.16

English version of changelog>>

・--qvbrが使用できないGPUでのエラーメッセージを改善。
・OpenCLフィルタ実行時の安定性を改善。
・LinuxでのデフォルトをH.264 main profileでのエンコードに変更。
・Linuxでのエンコードで映像が乱れる場合があったのを修正。



※ VCEEnc 5.xx以前のプロファイルは設定しなおす必要があるかもしれません。
ダウンロード>>
ダウンロード (ミラー) >>

VCEEncCのオプションについてはこちら。
VCEEncCオプション一覧>>

ソースはこちら>>


プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: [email protected]
github twitter

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

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

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

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

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

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

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

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

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


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

clcufilters 
- OpenCL/CUDAの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対応版

tsreplace
- tsの映像のみを置き換えて圧縮

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

fawutil
- FAW(FakeAACWave)⇔aac変換
- 二重音声の取り扱いにも対応

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